]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
vala: Mark tranformed member-access as qualified
authorRico Tzschichholz <ricotz@ubuntu.com>
Wed, 5 Aug 2020 15:45:39 +0000 (17:45 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Mon, 10 Aug 2020 08:14:31 +0000 (10:14 +0200)
Regression of 866258f688d781f3536892b8f93abdd3112198ec

See https://gitlab.gnome.org/GNOME/vala/issues/57

tests/Makefile.am
tests/semantic/member-access-transformed-qualified.vala [new file with mode: 0644]
vala/valamemberaccess.vala

index 9be7483fca20131d879dde6f8072fc37c67048fd..970bbe133ca37720d02afd672c9b3866117bff60 100644 (file)
@@ -759,6 +759,7 @@ TESTS = \
        semantic/member-access-protected-invalid.test \
        semantic/member-access-undefined.test \
        semantic/member-access-static-with-instance.vala \
+       semantic/member-access-transformed-qualified.vala \
        semantic/method-abstract.test \
        semantic/method-abstract-body.test \
        semantic/method-async-ref-parameter.test \
diff --git a/tests/semantic/member-access-transformed-qualified.vala b/tests/semantic/member-access-transformed-qualified.vala
new file mode 100644 (file)
index 0000000..f8c273d
--- /dev/null
@@ -0,0 +1,20 @@
+using Foo.Bar;
+using Foo.Manam;
+
+namespace Foo.Bar {
+       public int bar = 23;
+}
+
+namespace Foo.Manam {
+       public class Foo {
+               public static void faz () {
+                       bar = 42;
+               }
+       }
+}
+
+void main () {
+       assert (bar == 23);
+       Foo.Manam.Foo.faz ();
+       assert (bar == 42);
+}
index deb702a2abab851fd78591ef94e038f2d10ac9f6..869e0282c9d9f8aa26b9f54cd110549103a5822f 100644 (file)
@@ -320,6 +320,7 @@ public class Vala.MemberAccess : Expression {
                                                        inner_ma = (MemberAccess) inner_ma.inner;
                                                        inner_sym = inner_sym.parent_symbol;
                                                }
+                                               inner_ma.qualified = true;
                                                inner.check (context);
 
                                                symbol_reference = local_sym;