]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
vala: Fix base-access check for compact classes (2)
authorRico Tzschichholz <ricotz@ubuntu.com>
Wed, 5 Feb 2020 07:32:53 +0000 (08:32 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Wed, 5 Feb 2020 07:32:53 +0000 (08:32 +0100)
See 84de99560ee96afa8cb80db3b342d584a72188cd

vala/valabaseaccess.vala

index 00251450417440ba95562e96f795cbc215e7bf17..68a3cb8f970f9c078cbea0e34f10e00f58dfb2e1 100644 (file)
@@ -78,12 +78,13 @@ public class Vala.BaseAccess : Expression {
                        Report.error (source_reference, "Base access invalid without base class");
                        return false;
                } else if (context.analyzer.current_class.is_compact && context.analyzer.current_method != null
-                   && !(context.analyzer.current_method is CreationMethod) && context.analyzer.current_method.overrides) {
+                   && !(context.analyzer.current_method is CreationMethod)
+                   && (context.analyzer.current_method.overrides || context.analyzer.current_method.is_virtual)) {
                        error = true;
                        Report.error (source_reference, "Base access invalid in virtual overridden method of compact class");
                        return false;
                } else if (context.analyzer.current_class.is_compact && context.analyzer.current_property_accessor != null
-                   && context.analyzer.current_property_accessor.get_method ().overrides) {
+                   && (context.analyzer.current_property_accessor.prop.overrides || context.analyzer.current_property_accessor.prop.is_virtual)) {
                        error = true;
                        Report.error (source_reference, "Base access invalid in virtual overridden property of compact class");
                        return false;