]> 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 12:09:22 +0000 (13:09 +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 e18e4cb794d8c685546cfd82c5fbfcf4bc22738f..d0a8ed109bc0360e646673706c54e23e918afbef 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 df6b1c0597b61015f3fd53585834d642475f9475..e5096e405a81e506666b3355c4128c2264d5397d 100644 (file)
@@ -974,6 +974,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);
+}