]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
vala: Properly restore SemanticAnalyzer.current_symbol to its original value
authorRico Tzschichholz <ricotz@ubuntu.com>
Sat, 14 Nov 2020 14:55:10 +0000 (15:55 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Sat, 14 Nov 2020 14:57:06 +0000 (15:57 +0100)
vala/valaconstructor.vala
vala/valadestructor.vala
vala/valaforeachstatement.vala

index 97f4bf4f4de5ae042eed2410d08a3ba4a2d5bdb3..2c923246c3e767e3827ce14733c08825fcbf6731 100644 (file)
@@ -71,6 +71,7 @@ public class Vala.Constructor : Subroutine {
                        this_parameter.check (context);
                }
 
+               var old_symbol = context.analyzer.current_symbol;
                context.analyzer.current_symbol = this;
 
                if (body != null) {
@@ -87,7 +88,7 @@ public class Vala.Constructor : Subroutine {
                        }
                }
 
-               context.analyzer.current_symbol = parent_symbol;
+               context.analyzer.current_symbol = old_symbol;
 
                return !error;
        }
index 61797ea228a7ebdc3b49fa95cd8d72b4e8463eaa..f363fee1b81b9cca0396053199faeb55bf96a7a4 100644 (file)
@@ -71,13 +71,14 @@ public class Vala.Destructor : Subroutine {
                        this_parameter.check (context);
                }
 
+               var old_symbol = context.analyzer.current_symbol;
                context.analyzer.current_symbol = this;
 
                if (body != null) {
                        body.check (context);
                }
 
-               context.analyzer.current_symbol = parent_symbol;
+               context.analyzer.current_symbol = old_symbol;
 
                return !error;
        }
index 2c81b202a55010b0f389a5d31594917080454697..7f77cdc33427c5c7db49876fe44d16e12f030135 100644 (file)
@@ -378,6 +378,7 @@ public class Vala.ForeachStatement : Block {
                element_variable.checked = true;
 
                // analyze body
+               var old_symbol = context.analyzer.current_symbol;
                owner = context.analyzer.current_symbol.scope;
                context.analyzer.current_symbol = this;
 
@@ -391,7 +392,7 @@ public class Vala.ForeachStatement : Block {
                        local.active = false;
                }
 
-               context.analyzer.current_symbol = context.analyzer.current_symbol.parent_symbol;
+               context.analyzer.current_symbol = old_symbol;
 
                collection_variable = new LocalVariable (collection_type.copy (), "%s_collection".printf (variable_name));