[vala/staging] vala: Set default_construction_method in semantic-analyzer check if required



commit d176f179581fac880f5598bb53b3475392af2c4b
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Wed Apr 8 14:32:07 2020 +0200

    vala: Set default_construction_method in semantic-analyzer check if required
    
    Doing this in the parser is not reasonable while this is clearly a sematic
    requirement.

 vala/valaclass.vala  | 9 +++++++++
 vala/valaparser.vala | 9 ---------
 2 files changed, 9 insertions(+), 9 deletions(-)
---
diff --git a/vala/valaclass.vala b/vala/valaclass.vala
index 586fe287f..d7f148986 100644
--- a/vala/valaclass.vala
+++ b/vala/valaclass.vala
@@ -524,6 +524,15 @@ public class Vala.Class : ObjectTypeSymbol {
 
                checked = true;
 
+               // ensure there is always a default construction method
+               if (default_construction_method == null
+                   && source_reference.file.file_type == SourceFileType.SOURCE) {
+                       var m = new CreationMethod (name, null, source_reference);
+                       m.access = (is_abstract ? SymbolAccessibility.PROTECTED : SymbolAccessibility.PUBLIC);
+                       m.body = new Block (source_reference);
+                       add_method (m);
+               }
+
                var old_source_file = context.analyzer.current_source_file;
                var old_symbol = context.analyzer.current_symbol;
 
diff --git a/vala/valaparser.vala b/vala/valaparser.vala
index e2ec7b4a1..48818a293 100644
--- a/vala/valaparser.vala
+++ b/vala/valaparser.vala
@@ -2658,15 +2658,6 @@ public class Vala.Parser : CodeVisitor {
 
                parse_declarations (cl);
 
-               // ensure there is always a default construction method
-               if (scanner.source_file.file_type == SourceFileType.SOURCE
-                   && cl.default_construction_method == null) {
-                       var m = new CreationMethod (cl.name, null, cl.source_reference);
-                       m.access = (cl.is_abstract ? SymbolAccessibility.PROTECTED : 
SymbolAccessibility.PUBLIC);
-                       m.body = new Block (cl.source_reference);
-                       cl.add_method (m);
-               }
-
                Symbol result = cl;
                while (sym != null) {
                        sym = sym.inner;


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