summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2020-08-05 17:45:39 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2020-08-10 10:00:35 +0200
commit8afe7e0b9c18472c1e1cedc4a5582f4e0f8ef4b1 (patch)
treebed9978cb78be6e8cfe4cb4a72555031908a5abb
parent50c631e6157448756ef2b737dee9d2fc1d60db26 (diff)
downloadvala-8afe7e0b9c18472c1e1cedc4a5582f4e0f8ef4b1.tar.gz
vala: Mark tranformed member-access as qualified
Regression of 866258f688d781f3536892b8f93abdd3112198ec See https://gitlab.gnome.org/GNOME/vala/issues/57
-rw-r--r--tests/Makefile.am1
-rw-r--r--tests/semantic/member-access-transformed-qualified.vala20
-rw-r--r--vala/valamemberaccess.vala1
3 files changed, 22 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 0e35fd799..fde076561 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -833,6 +833,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
index 000000000..f8c273d08
--- /dev/null
+++ b/tests/semantic/member-access-transformed-qualified.vala
@@ -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);
+}
diff --git a/vala/valamemberaccess.vala b/vala/valamemberaccess.vala
index 2bb8d462d..51ce6cb17 100644
--- a/vala/valamemberaccess.vala
+++ b/vala/valamemberaccess.vala
@@ -326,6 +326,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;