]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Use CCodeConstant for member access of constant symbol
authorRico Tzschichholz <ricotz@ubuntu.com>
Sat, 6 Nov 2021 17:55:38 +0000 (18:55 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Sun, 14 Nov 2021 11:43:26 +0000 (12:43 +0100)
This broke assumptions in CCodeBaseModule.is_constant_ccode_expression()

codegen/valaccodememberaccessmodule.vala
tests/Makefile.am
tests/semantic/field-constant.vala [new file with mode: 0644]

index ae9fca482194f602253d92ca774ecb7682442da1..f8161b94780389e07beba15150fb5b456a64c564 100644 (file)
@@ -186,7 +186,7 @@ public abstract class Vala.CCodeMemberAccessModule : CCodeControlFlowModule {
                                }
                                set_cvalue (expr, new CCodeConstant ("\"%s\"".printf (s)));
                        } else {
-                               set_cvalue (expr, new CCodeIdentifier (get_ccode_name (c)));
+                               set_cvalue (expr, new CCodeConstant (get_ccode_name (c)));
                        }
 
                        if (array_type != null) {
index 23a84204cb5f644312568af672b3eb278eb059f9..b08700f11a07cb9bd26ec4ba391941a4bb29b1b3 100644 (file)
@@ -1013,6 +1013,7 @@ TESTS = \
        semantic/errordomain-empty.test \
        semantic/field-accessibility.test \
        semantic/field-compact-static.test \
+       semantic/field-constant.vala \
        semantic/field-external.test \
        semantic/field-incompatible.test \
        semantic/field-interface.test \
diff --git a/tests/semantic/field-constant.vala b/tests/semantic/field-constant.vala
new file mode 100644 (file)
index 0000000..43162dc
--- /dev/null
@@ -0,0 +1,5 @@
+double foo = GLib.Math.PI;
+
+void main () {
+       assert (foo == GLib.Math.PI);
+}