[vala/0.48] codegen: Use CCodeConstant for member access of constant symbol



commit 58b08bf1f1b2125208f2c5a04d540ce464d9d63d
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Sat Nov 6 18:55:38 2021 +0100

    codegen: Use CCodeConstant for member access of constant symbol
    
    This broke assumptions in CCodeBaseModule.is_constant_ccode_expression()

 codegen/valaccodememberaccessmodule.vala | 2 +-
 tests/Makefile.am                        | 1 +
 tests/semantic/field-constant.vala       | 5 +++++
 3 files changed, 7 insertions(+), 1 deletion(-)
---
diff --git a/codegen/valaccodememberaccessmodule.vala b/codegen/valaccodememberaccessmodule.vala
index e18e4cb79..d0a8ed109 100644
--- a/codegen/valaccodememberaccessmodule.vala
+++ b/codegen/valaccodememberaccessmodule.vala
@@ -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) {
diff --git a/tests/Makefile.am b/tests/Makefile.am
index df6b1c059..e5096e405 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -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
index 000000000..43162dc38
--- /dev/null
+++ b/tests/semantic/field-constant.vala
@@ -0,0 +1,5 @@
+double foo = GLib.Math.PI;
+
+void main () {
+       assert (foo == GLib.Math.PI);
+}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]