View Issue Details

IDProjectCategoryView StatusLast Update
0004775NoesisGUIC++ SDKpublic2026-02-18 14:23
ReporterJinFox Assigned Tojsantos  
PrioritynormalSeverityminor 
Status resolvedResolutionfixed 
Product Version3.2 
Target Version3.2.11Fixed in Version3.2.11 
Summary0004775: compilation error on clang using strict flags as Rive source code uses same variable name twice.
Description

Hello,

We had to do a manual change in all rive data_values source code due to a parameter and a static constant sharing the name "typeKey" and Clang not being happy to have to resolve which one is being referred to in the method implementation.
For example in :
NoesisSDK\Src\Packages\App\RiveBase\Src\rive\include\rive\data_bind\data_values\data_value_boolean.hpp, there is :

static const DataType typeKey = DataType::boolean;
    bool isTypeOf(DataType typeKey) const override
    {
        return typeKey == DataType::boolean;
    }

and here typeKey could refer to the static const or the parameter (c++ makes that the parameter takes precedence but depending of the compilation strictness, it may throw an error). renaming the parameter to inTypeKey for example clears out the confusion.

It is not really an error per say but if you include this change it would allow us to minimize change on our side.

PlatformAny

Activities

jsantos

jsantos

2026-02-05 12:02

manager   ~0011841

Could you please provide a patch with the exact changes?

Thank you!

JinFox

JinFox

2026-02-05 12:19

reporter   ~0011842

Hello,
Here is the local change that we have done to the file of this data_value folder under the Patch form. It is just renaming the parameter name of the isTypeOf method

patch.diff (5,226 bytes)   
diff -urN -w --strip-trailing-cr --no-dereference data_values_withoutPatch/data_value_boolean.hpp data_values/data_value_boolean.hpp
--- data_values_withoutPatch/data_value_boolean.hpp	2026-02-05 09:46:54.119624600 +0000
+++ data_values/data_value_boolean.hpp	2026-02-05 11:08:36.422107800 +0000
@@ -14,9 +14,9 @@
     DataValueBoolean(bool value) : m_value(value){};
     DataValueBoolean(){};
     static const DataType typeKey = DataType::boolean;
-    bool isTypeOf(DataType typeKey) const override
+    bool isTypeOf(DataType inTypeKey) const override
     {
-        return typeKey == DataType::boolean;
+        return inTypeKey == DataType::boolean;
     }
     bool value() { return m_value; };
     void value(bool value) { m_value = value; };
diff -urN -w --strip-trailing-cr --no-dereference data_values_withoutPatch/data_value_color.hpp data_values/data_value_color.hpp
--- data_values_withoutPatch/data_value_color.hpp	2026-02-05 09:46:54.121813900 +0000
+++ data_values/data_value_color.hpp	2026-02-05 11:08:36.495058900 +0000
@@ -14,9 +14,9 @@
     DataValueColor(int value) : m_value(value){};
     DataValueColor(){};
     static const DataType typeKey = DataType::color;
-    bool isTypeOf(DataType typeKey) const override
+    bool isTypeOf(DataType inTypeKey) const override
     {
-        return typeKey == DataType::color;
+        return inTypeKey == DataType::color;
     }
     int value() { return m_value; };
     void value(int value) { m_value = value; };
diff -urN -w --strip-trailing-cr --no-dereference data_values_withoutPatch/data_value_enum.hpp data_values/data_value_enum.hpp
--- data_values_withoutPatch/data_value_enum.hpp	2026-02-05 09:46:54.122814500 +0000
+++ data_values/data_value_enum.hpp	2026-02-05 11:08:36.347479400 +0000
@@ -17,9 +17,9 @@
         m_value(value), m_dataEnum(dataEnum){};
     DataValueEnum(){};
     static const DataType typeKey = DataType::enumType;
-    bool isTypeOf(DataType typeKey) const override
+    bool isTypeOf(DataType inTypeKey) const override
     {
-        return typeKey == DataType::enumType;
+        return inTypeKey == DataType::enumType;
     };
     uint32_t value() { return m_value; };
     void value(uint32_t value) { m_value = value; };
diff -urN -w --strip-trailing-cr --no-dereference data_values_withoutPatch/data_value_list.hpp data_values/data_value_list.hpp
--- data_values_withoutPatch/data_value_list.hpp	2026-02-05 09:46:54.124396900 +0000
+++ data_values/data_value_list.hpp	2026-02-05 11:08:36.459006500 +0000
@@ -15,9 +15,9 @@
 public:
     DataValueList(){};
     static const DataType typeKey = DataType::list;
-    bool isTypeOf(DataType typeKey) const override
+    bool isTypeOf(DataType inTypeKey) const override
     {
-        return typeKey == DataType::list;
+        return inTypeKey == DataType::list;
     }
     std::vector<ViewModelInstanceListItem*>* value() { return &m_value; };
     void clear() { m_value.clear(); };
diff -urN -w --strip-trailing-cr --no-dereference data_values_withoutPatch/data_value_number.hpp data_values/data_value_number.hpp
--- data_values_withoutPatch/data_value_number.hpp	2026-02-05 09:46:54.126325600 +0000
+++ data_values/data_value_number.hpp	2026-02-05 11:08:36.384006800 +0000
@@ -14,9 +14,9 @@
     DataValueNumber(float value) : m_value(value){};
     DataValueNumber(){};
     static const DataType typeKey = DataType::number;
-    bool isTypeOf(DataType typeKey) const override
+    bool isTypeOf(DataType inTypeKey) const override
     {
-        return typeKey == DataType::number;
+        return inTypeKey == DataType::number;
     }
     float value() { return m_value; };
     void value(float value) { m_value = value; };
diff -urN -w --strip-trailing-cr --no-dereference data_values_withoutPatch/data_value_string.hpp data_values/data_value_string.hpp
--- data_values_withoutPatch/data_value_string.hpp	2026-02-05 09:46:54.127324000 +0000
+++ data_values/data_value_string.hpp	2026-02-05 11:08:36.310930700 +0000
@@ -14,9 +14,9 @@
     DataValueString(std::string value) : m_value(value){};
     DataValueString(){};
     static const DataType typeKey = DataType::string;
-    bool isTypeOf(DataType typeKey) const override
+    bool isTypeOf(DataType inTypeKey) const override
     {
-        return typeKey == DataType::string;
+        return inTypeKey == DataType::string;
     };
     std::string value() { return m_value; };
     void value(std::string value) { m_value = value; };
diff -urN -w --strip-trailing-cr --no-dereference data_values_withoutPatch/data_value_trigger.hpp data_values/data_value_trigger.hpp
--- data_values_withoutPatch/data_value_trigger.hpp	2026-02-05 09:46:54.128829300 +0000
+++ data_values/data_value_trigger.hpp	2026-02-05 11:08:36.531234700 +0000
@@ -14,9 +14,9 @@
     DataValueTrigger(uint32_t value) : m_value(value){};
     DataValueTrigger(){};
     static const DataType typeKey = DataType::trigger;
-    bool isTypeOf(DataType typeKey) const override
+    bool isTypeOf(DataType inTypeKey) const override
     {
-        return typeKey == DataType::trigger;
+        return inTypeKey == DataType::trigger;
     }
     uint32_t value() { return m_value; };
     void value(uint32_t value) { m_value = value; };
patch.diff (5,226 bytes)   
jsantos

jsantos

2026-02-18 14:23

manager   ~0011901

Fixed in r16665

Issue History

Date Modified Username Field Change
2026-02-05 11:20 JinFox New Issue
2026-02-05 12:01 jsantos Description Updated
2026-02-05 12:01 jsantos Assigned To => jsantos
2026-02-05 12:01 jsantos Status new => assigned
2026-02-05 12:01 jsantos Target Version => 3.2.11
2026-02-05 12:02 jsantos Note Added: 0011841
2026-02-05 12:02 jsantos Status assigned => feedback
2026-02-05 12:19 JinFox Note Added: 0011842
2026-02-05 12:19 JinFox File Added: patch.diff
2026-02-05 12:19 JinFox Status feedback => assigned
2026-02-18 14:23 jsantos Status assigned => resolved
2026-02-18 14:23 jsantos Resolution open => fixed
2026-02-18 14:23 jsantos Fixed in Version => 3.2.11
2026-02-18 14:23 jsantos Note Added: 0011901