diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2022-06-11 13:28:11 +0200 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2022-06-14 15:46:39 +0200 |
commit | ecf55f6768005a50f4f84348a1991b3af7c1c71e (patch) | |
tree | e591746582415b7c7d9716698619b1b0d050170a /codegen | |
parent | b98d970f52c7094c70cd65c8c9624e6b7a85bfc3 (diff) | |
download | vala-ecf55f6768005a50f4f84348a1991b3af7c1c71e.tar.gz |
codegen: Split reserved identifiers for C and Vala
Diffstat (limited to 'codegen')
-rw-r--r-- | codegen/valaccodeattribute.vala | 4 | ||||
-rw-r--r-- | codegen/valaccodebasemodule.vala | 11 |
2 files changed, 9 insertions, 6 deletions
diff --git a/codegen/valaccodeattribute.vala b/codegen/valaccodeattribute.vala index 3c3b18ef4..a996480d7 100644 --- a/codegen/valaccodeattribute.vala +++ b/codegen/valaccodeattribute.vala @@ -787,7 +787,7 @@ public class Vala.CCodeAttribute : AttributeCache { return Symbol.camel_case_to_lower_case (sym.name).replace ("_", "-");; } else if (sym is LocalVariable) { unowned string name = sym.name; - if (CCodeBaseModule.reserved_identifiers.contains (name)) { + if (CCodeBaseModule.reserved_identifiers.contains (name) || CCodeBaseModule.reserved_vala_identifiers.contains (name)) { return "_%s_".printf (name); } else { return name; @@ -798,7 +798,7 @@ public class Vala.CCodeAttribute : AttributeCache { return "..."; } unowned string name = sym.name; - if (CCodeBaseModule.reserved_identifiers.contains (name)) { + if (CCodeBaseModule.reserved_identifiers.contains (name) || CCodeBaseModule.reserved_vala_identifiers.contains (name)) { return "_%s_".printf (name); } else { return name; diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index c30f0dae9..fb323e28e 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -275,6 +275,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { public Set<string> predefined_marshal_set; /* (constant) hash table with all reserved identifiers in the generated code */ public static Set<string> reserved_identifiers; + public static Set<string> reserved_vala_identifiers; public int next_temp_var_id { get { return emit_context.next_temp_var_id; } @@ -467,10 +468,12 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { // MSVC keywords reserved_identifiers.add ("cdecl"); + reserved_vala_identifiers = new HashSet<string> (str_hash, str_equal); + // reserved for Vala/GObject naming conventions - reserved_identifiers.add ("error"); - reserved_identifiers.add ("result"); - reserved_identifiers.add ("self"); + reserved_vala_identifiers.add ("error"); + reserved_vala_identifiers.add ("result"); + reserved_vala_identifiers.add ("self"); } public override void emit (CodeContext context) { @@ -2721,7 +2724,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { next_temp_var_id++; } return variable_name_map.get (name); - } else if (reserved_identifiers.contains (name)) { + } else if (reserved_identifiers.contains (name) || reserved_vala_identifiers.contains (name)) { return "_%s_".printf (name); } else { return name; |