]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Symbol: remove static access to CodeContext 1270-remove-static-codecontext-access
authorDaniel Espinosa <esodan@gmail.com>
Mon, 3 Jan 2022 02:47:39 +0000 (20:47 -0600)
committerDaniel Espinosa <esodan@gmail.com>
Mon, 3 Jan 2022 23:51:34 +0000 (17:51 -0600)
vala/valasymbol.vala

index 7e8b4493a450cb5c8efe64a6a0e9de5aebebcd57..4ae4347346174c6438fd428f9c1e2970e1fbb7f8 100644 (file)
@@ -452,59 +452,115 @@ public abstract class Vala.Symbol : CodeNode {
        }
 
        public virtual void add_namespace (Namespace ns) {
-               Report.error (ns.source_reference, "inner `%s' is not supported in `%s'", "namespace", get_full_name ());
+               if (context == null) {
+                       context = ns.context;
+               }
+
+               ns.context.report.log_error (ns.source_reference, "inner `%s' is not supported in `%s'", "namespace", get_full_name ());
        }
 
        public virtual void add_class (Class cl) {
-               Report.error (cl.source_reference, "inner `%s' types are not supported in `%s'", "class", get_full_name ());
+               if (context == null) {
+                       context = traverse_for_context ();
+               }
+
+               context.report.log_error (cl.source_reference, "inner `%s' types are not supported in `%s'", "class", get_full_name ());
        }
 
        public virtual void add_interface (Interface iface) {
-               Report.error (iface.source_reference, "inner `%s' types are not supported in `%s'", "interface", get_full_name ());
+               if (context == null) {
+                       context = traverse_for_context ();
+               }
+
+               context.report.log_error (iface.source_reference, "inner `%s' types are not supported in `%s'", "interface", get_full_name ());
        }
 
        public virtual void add_struct (Struct st) {
-               Report.error (st.source_reference, "inner `%s' types are not supported in `%s'", "struct", get_full_name ());
+               if (context == null) {
+                       context = traverse_for_context ();
+               }
+
+               context.report.log_error (st.source_reference, "inner `%s' types are not supported in `%s'", "struct", get_full_name ());
        }
 
        public virtual void add_enum (Enum en) {
-               Report.error (en.source_reference, "inner `%s' types are not supported in `%s'", "enum", get_full_name ());
+               if (context == null) {
+                       context = traverse_for_context ();
+               }
+
+               context.report.log_error (en.source_reference, "inner `%s' types are not supported in `%s'", "enum", get_full_name ());
        }
 
        public virtual void add_error_domain (ErrorDomain edomain) {
-               Report.error (edomain.source_reference, "inner `%s' types are not supported in `%s'", "errordomain", get_full_name ());
+               if (context == null) {
+                       context = traverse_for_context ();
+               }
+
+               context.report.log_error (edomain.source_reference, "inner `%s' types are not supported in `%s'", "errordomain", get_full_name ());
        }
 
        public virtual void add_delegate (Delegate d) {
-               Report.error (d.source_reference, "inner `%s' types are not supported in `%s'", "delegate", get_full_name ());
+               if (context == null) {
+                       context = traverse_for_context ();
+               }
+
+               context.report.log_error (d.source_reference, "inner `%s' types are not supported in `%s'", "delegate", get_full_name ());
        }
 
        public virtual void add_constant (Constant constant) {
-               Report.error (constant.source_reference, "constants are not allowed in `%s'", get_full_name ());
+               if (context == null) {
+                       context = traverse_for_context ();
+               }
+
+               context.report.log_error (constant.source_reference, "constants are not allowed in `%s'", get_full_name ());
        }
 
        public virtual void add_field (Field f) {
-               Report.error (f.source_reference, "fields are not allowed in `%s'", get_full_name ());
+               if (context == null) {
+                       context = traverse_for_context ();
+               }
+
+               context.report.log_error (f.source_reference, "fields are not allowed in `%s'", get_full_name ());
        }
 
        public virtual void add_method (Method m) {
-               Report.error (m.source_reference, "methods are not allowed in `%s'", get_full_name ());
+               if (context == null) {
+                       context = traverse_for_context ();
+               }
+
+               context.report.log_error (m.source_reference, "methods are not allowed in `%s'", get_full_name ());
        }
 
        public virtual void add_property (Property prop) {
-               Report.error (prop.source_reference, "properties are not allowed in `%s'", get_full_name ());
+               if (context == null) {
+                       context = traverse_for_context ();
+               }
+
+               context.report.log_error (prop.source_reference, "properties are not allowed in `%s'", get_full_name ());
        }
 
        public virtual void add_signal (Signal sig) {
-               Report.error (sig.source_reference, "signals are not allowed in `%s'", get_full_name ());
+               if (context == null) {
+                       context = traverse_for_context ();
+               }
+
+               context.report.log_error (sig.source_reference, "signals are not allowed in `%s'", get_full_name ());
        }
 
        public virtual void add_constructor (Constructor c) {
-               Report.error (c.source_reference, "constructors are not allowed in `%s'", get_full_name ());
+               if (context == null) {
+                       context = traverse_for_context ();
+               }
+
+               context.report.log_error (c.source_reference, "constructors are not allowed in `%s'", get_full_name ());
        }
 
        public virtual void add_destructor (Destructor d) {
-               Report.error (d.source_reference, "destructors are not allowed in `%s'", get_full_name ());
+               if (context == null) {
+                       context = traverse_for_context ();
+               }
+
+               context.report.log_error (d.source_reference, "destructors are not allowed in `%s'", get_full_name ());
        }
 
        public override string to_string () {