From: Rico Tzschichholz Date: Thu, 16 Apr 2020 10:37:26 +0000 (+0200) Subject: vala: Perform version check for types of non-external variable declarations X-Git-Tag: 0.49.1~168 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=13f8c3996b2cd3aedcfc0d3e73fb2e0aeba0a58a;p=thirdparty%2Fvala.git vala: Perform version check for types of non-external variable declarations --- diff --git a/vala/valafield.vala b/vala/valafield.vala index c7201d02e..3b6eeda75 100644 --- a/vala/valafield.vala +++ b/vala/valafield.vala @@ -107,6 +107,11 @@ public class Vala.Field : Variable, Lockable { variable_type.check (context); if (!external_package) { context.analyzer.check_type (variable_type); + + // check symbol availability + if (variable_type.type_symbol != null) { + variable_type.type_symbol.version.check (source_reference); + } } // check whether field type is at least as accessible as the field diff --git a/vala/valalocalvariable.vala b/vala/valalocalvariable.vala index 64e16325b..dbe9ace11 100644 --- a/vala/valalocalvariable.vala +++ b/vala/valalocalvariable.vala @@ -160,6 +160,13 @@ public class Vala.LocalVariable : Variable { variable_type.check (context); } + if (!external_package) { + // check symbol availability + if (variable_type.type_symbol != null) { + variable_type.type_symbol.version.check (source_reference); + } + } + unowned ArrayType? variable_array_type = variable_type as ArrayType; if (variable_array_type != null && variable_array_type.inline_allocated && initializer is ArrayCreationExpression && ((ArrayCreationExpression) initializer).initializer_list == null) { diff --git a/vala/valaparameter.vala b/vala/valaparameter.vala index f99f484da..0267a7675 100644 --- a/vala/valaparameter.vala +++ b/vala/valaparameter.vala @@ -199,6 +199,11 @@ public class Vala.Parameter : Variable { if (!ellipsis) { if (!external_package) { context.analyzer.check_type (variable_type); + + // check symbol availability + if ((parent_symbol == null || !parent_symbol.external_package) && variable_type.type_symbol != null) { + variable_type.type_symbol.version.check (source_reference); + } } // check whether parameter type is at least as accessible as the method