From c4aaffdbdd5731c35629ae7f20a19b13ae4b8383 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Wed, 1 Dec 2021 07:10:33 -0700 Subject: [PATCH] package/apirecorder: correctly follow nested method invocations --- .../apirecorder/RecordingTreeScanner.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/package/apirecorder/src/main/java/net/runelite/pluginhub/apirecorder/RecordingTreeScanner.java b/package/apirecorder/src/main/java/net/runelite/pluginhub/apirecorder/RecordingTreeScanner.java index af28e60b7..54eed6c30 100644 --- a/package/apirecorder/src/main/java/net/runelite/pluginhub/apirecorder/RecordingTreeScanner.java +++ b/package/apirecorder/src/main/java/net/runelite/pluginhub/apirecorder/RecordingTreeScanner.java @@ -28,6 +28,7 @@ import com.sun.source.tree.IdentifierTree; import com.sun.source.tree.ImportTree; import com.sun.source.tree.MemberSelectTree; import com.sun.source.tree.MethodInvocationTree; +import com.sun.source.tree.NewClassTree; import com.sun.source.tree.PackageTree; import com.sun.source.util.JavacTask; import com.sun.source.util.TreePath; @@ -39,6 +40,7 @@ import java.util.HashMap; import java.util.Map; import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.PackageElement; import javax.lang.model.element.TypeElement; import javax.lang.model.element.VariableElement; import javax.lang.model.type.ArrayType; @@ -104,14 +106,21 @@ class RecordingTreeScanner extends TreePathScanner public Void visitMemberSelect(MemberSelectTree node, Void unused) { recordElement(trees.getElement(getCurrentPath())); - return null; + return super.visitMemberSelect(node, unused); } @Override public Void visitMethodInvocation(MethodInvocationTree node, Void unused) { recordElement(trees.getElement(getCurrentPath())); - return null; + return super.visitMethodInvocation(node, unused); + } + + @Override + public Void visitNewClass(NewClassTree node, Void unused) + { + recordElement(trees.getElement(getCurrentPath())); + return super.visitNewClass(node, unused); } @SneakyThrows @@ -140,6 +149,10 @@ class RecordingTreeScanner extends TreePathScanner unexpected(tm); } } + else if (element instanceof PackageElement) + { + return false; + } else { if (element.getEnclosingElement() != null && element.getEnclosingElement() != element)