]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
vala: Use available CodeContext instance for VersionAttribute.check()
authorRico Tzschichholz <ricotz@ubuntu.com>
Thu, 16 Apr 2020 10:37:26 +0000 (12:37 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Wed, 17 Jun 2020 10:21:48 +0000 (12:21 +0200)
vala/valaclass.vala
vala/valafield.vala
vala/valalocalvariable.vala
vala/valamemberaccess.vala
vala/valaobjectcreationexpression.vala
vala/valaparameter.vala
vala/valaversionattribute.vala

index c3cc48f5514c1b21fa7521fa7c909f88d151980b..e0247ac9b8a3f6db7728bd7d28f674af48a297c2 100644 (file)
@@ -774,7 +774,7 @@ public class Vala.Class : ObjectTypeSymbol {
                                                                            && (impl.base_interface_type == null || impl.base_interface_type.type_symbol == iface)
                                                                            && impl.compatible_no_error (m))) {
                                                                                // method is used as interface implementation, so it is not unused
-                                                                               impl.version.check (source_reference);
+                                                                               impl.version.check (context, source_reference);
                                                                                impl.used = true;
                                                                                implemented = true;
                                                                                if (impl.base_interface_method == null) {
@@ -810,7 +810,7 @@ public class Vala.Class : ObjectTypeSymbol {
                                                                        Report.error (source_reference, "Type and/or accessors of inherited properties `%s' and `%s' do not match: %s.".printf (prop.get_full_name (), base_prop.get_full_name (), invalid_match));
                                                                }
                                                                // property is used as interface implementation, so it is not unused
-                                                               sym.version.check (source_reference);
+                                                               sym.version.check (context, source_reference);
                                                                sym.used = true;
                                                        } else {
                                                                error = true;
index 3b6eeda75a51704e20acc2c5fd0d8632494e21ad..ed59f582ae63d640c68af6999596b3993e471842 100644 (file)
@@ -110,7 +110,7 @@ public class Vala.Field : Variable, Lockable {
 
                        // check symbol availability
                        if (variable_type.type_symbol != null) {
-                               variable_type.type_symbol.version.check (source_reference);
+                               variable_type.type_symbol.version.check (context, source_reference);
                        }
                }
 
index dbe9ace1147bb511acb1d77fa0e660f4a201c1e6..a1c3657f8e6baf54ba64c8bca15bef472449342e 100644 (file)
@@ -163,7 +163,7 @@ public class Vala.LocalVariable : Variable {
                if (!external_package) {
                        // check symbol availability
                        if (variable_type.type_symbol != null) {
-                               variable_type.type_symbol.version.check (source_reference);
+                               variable_type.type_symbol.version.check (context, source_reference);
                        }
                }
 
index 1154d3c8b4305fee4a9aaadbbdf44dd64e1ee047..5e810d699de50afd271cbadbf2280daaba1eeb10 100644 (file)
@@ -787,7 +787,7 @@ public class Vala.MemberAccess : Expression {
                if (parent != member) {
                        member.used = true;
                }
-               member.version.check (source_reference);
+               member.version.check (context, source_reference);
 
                if (access == SymbolAccessibility.PROTECTED && member.parent_symbol is TypeSymbol) {
                        unowned TypeSymbol target_type = (TypeSymbol) member.parent_symbol;
index bc326f9c529edcc6e6357fc87f0cfe7c657fb694..b01431c4e97171a5501b38bd54b293adcbc34d44 100644 (file)
@@ -288,7 +288,7 @@ public class Vala.ObjectCreationExpression : Expression {
 
                                // track usage for flow analyzer
                                symbol_reference.used = true;
-                               symbol_reference.version.check (source_reference);
+                               symbol_reference.version.check (context, source_reference);
                        }
 
                        if (symbol_reference != null
index 0267a76759a8333f04f399495fb545e0de1b3708..986d451aba14e624d38d5bebe1b0038634b84103 100644 (file)
@@ -202,7 +202,7 @@ public class Vala.Parameter : Variable {
 
                                // check symbol availability
                                if ((parent_symbol == null || !parent_symbol.external_package) && variable_type.type_symbol != null) {
-                                       variable_type.type_symbol.version.check (source_reference);
+                                       variable_type.type_symbol.version.check (context, source_reference);
                                }
                        }
 
index bff4d41d5b419047739bd9c8d01552d8e4ff24ea..ce46406cd0534d45210c9621661e892ff2478eff 100644 (file)
@@ -145,14 +145,14 @@ public class Vala.VersionAttribute {
         * Check to see if the symbol is experimental, deprecated or not available
         * and emit a warning if it is.
         */
-       public bool check (SourceReference? source_ref = null) {
+       public bool check (CodeContext context, SourceReference? source_ref = null) {
                bool result = false;
 
                // deprecation:
                if (symbol.external_package && deprecated) {
                        string? package_version = symbol.source_reference.file.installed_version;
 
-                       if (!CodeContext.get ().deprecated && (package_version == null || deprecated_since == null || VersionAttribute.cmp_versions (package_version, deprecated_since) >= 0)) {
+                       if (!context.deprecated && (package_version == null || deprecated_since == null || VersionAttribute.cmp_versions (package_version, deprecated_since) >= 0)) {
                                Report.deprecated (source_ref, "`%s' %s%s".printf (symbol.get_full_name (), (deprecated_since == null) ? "is deprecated" : "has been deprecated since %s".printf (deprecated_since), (replacement == null) ? "" : ". Use %s".printf (replacement)));
                        }
                        result = true;
@@ -162,7 +162,7 @@ public class Vala.VersionAttribute {
                if (symbol.external_package && since != null) {
                        string? package_version = symbol.source_reference.file.installed_version;
 
-                       if (CodeContext.get ().since_check && package_version != null && VersionAttribute.cmp_versions (package_version, since) < 0) {
+                       if (context.since_check && package_version != null && VersionAttribute.cmp_versions (package_version, since) < 0) {
                                unowned string filename = symbol.source_reference.file.filename;
                                string pkg = Path.get_basename (filename[0:filename.last_index_of_char ('.')]);
                                Report.error (source_ref, "`%s' is not available in %s %s. Use %s >= %s".printf (symbol.get_full_name (), pkg, package_version, pkg, since));
@@ -172,7 +172,7 @@ public class Vala.VersionAttribute {
 
                // experimental:
                if (symbol.external_package && experimental) {
-                       if (!CodeContext.get ().experimental) {
+                       if (!context.experimental) {
                                string? package_version = symbol.source_reference.file.installed_version;
                                string? experimental_until = this.experimental_until;