]> 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>
Wed, 5 Aug 2020 15:47:09 +0000 (17:47 +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 02e093defac3730ac1e53afbf7e2d2505f7bb18a..984266210f2e312bd1efb993b6e6f6aa89646070 100644 (file)
@@ -877,6 +877,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 88af4c0ca7b0ab4e2e2d6876f4bc042b88cc4daf..454d856b92f7b28dfadad4ae5aebb730500616ae 100644 (file)
@@ -346,6 +346,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;