]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
vala: Don't mark method as used on recursive usage of itself
authorRico Tzschichholz <ricotz@ubuntu.com>
Tue, 5 Nov 2019 10:14:26 +0000 (11:14 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Tue, 5 Nov 2019 13:04:29 +0000 (14:04 +0100)
See https://gitlab.gnome.org/GNOME/vala/issues/100

vala/valamemberaccess.vala

index 421ee8a9fb4be62b499d581593c67c091e973226..e09c36551ddcad468024301059b7119113929019 100644 (file)
@@ -737,7 +737,17 @@ public class Vala.MemberAccess : Expression {
                        member = symbol_reference;
                }
 
-               member.used = true;
+               // recursive usage of itself doesn't count as used
+               unowned CodeNode? parent = this;
+               while (parent != member) {
+                       parent = parent.parent_node;
+                       if (parent == null || parent == member) {
+                               break;
+                       }
+               }
+               if (parent != member) {
+                       member.used = true;
+               }
                member.version.check (source_reference);
 
                if (access == SymbolAccessibility.PROTECTED && member.parent_symbol is TypeSymbol) {