summaryrefslogtreecommitdiff
path: root/codegen
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2022-06-11 13:28:11 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2022-06-14 15:46:39 +0200
commitecf55f6768005a50f4f84348a1991b3af7c1c71e (patch)
treee591746582415b7c7d9716698619b1b0d050170a /codegen
parentb98d970f52c7094c70cd65c8c9624e6b7a85bfc3 (diff)
downloadvala-ecf55f6768005a50f4f84348a1991b3af7c1c71e.tar.gz
codegen: Split reserved identifiers for C and Vala
Diffstat (limited to 'codegen')
-rw-r--r--codegen/valaccodeattribute.vala4
-rw-r--r--codegen/valaccodebasemodule.vala11
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;