From 86fc2eb1783aa3fa9b16bade0d9c3589674c7204 Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Sat, 6 Nov 2021 18:55:38 +0100 Subject: [PATCH] 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(-) create mode 100644 tests/semantic/field-constant.vala diff --git a/codegen/valaccodememberaccessmodule.vala b/codegen/valaccodememberaccessmodule.vala index ae9fca482..f8161b947 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 23a84204c..b08700f11 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -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 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); +} -- 2.47.2