From 9bf893ae2786b73609cbcc9889c8d874208c51f5 Mon Sep 17 00:00:00 2001 From: Nicolay Mitropolsky Date: Wed, 8 Apr 2020 17:33:27 +0300 Subject: [PATCH] [uast-java] stop converting `PsiIdentifier` to `UReferenceExpression`s (IDEA-207979) GitOrigin-RevId: c165bddcc9e446492e0dda78716ef0498f81f49d --- .../apiUsage/ApiUsageUastVisitor.kt | 5 +- .../uast/baseElements/UIdentifier.kt | 12 +---- .../uast/java/JavaUastLanguagePlugin.kt | 8 +-- .../declarations/JavaLazyParentUIdentifier.kt | 21 ++++++++ .../JavaUModuleReferenceExpression.kt | 27 ++++++++++ .../jetbrains/uast/java/psiElementMapping.kt | 3 +- .../java/Simple/Annotation.refNames.txt | 19 ------- .../java/Simple/Anonymous.identifiers.txt | 2 +- .../java/Simple/Anonymous.refNames.txt | 14 +----- .../java/Simple/ComplexCalls.identifiers.txt | 20 ++++---- .../java/Simple/ComplexCalls.refNames.txt | 50 ------------------- .../java/Simple/InnerClass.refNames.txt | 11 ---- .../Simple/TryWithResources.identifiers.txt | 2 +- .../java/Simple/TryWithResources.refNames.txt | 15 ------ 14 files changed, 71 insertions(+), 138 deletions(-) create mode 100644 uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaLazyParentUIdentifier.kt create mode 100644 uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUModuleReferenceExpression.kt diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/apiUsage/ApiUsageUastVisitor.kt b/java/java-analysis-impl/src/com/intellij/codeInspection/apiUsage/ApiUsageUastVisitor.kt index 3c328a0f2313..8ead5d7b169f 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/apiUsage/ApiUsageUastVisitor.kt +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/apiUsage/ApiUsageUastVisitor.kt @@ -253,9 +253,8 @@ class ApiUsageUastVisitor(private val apiUsageProcessor: ApiUsageProcessor) : Ab private fun maybeProcessJavaModuleReference(node: UElement): Boolean { val sourcePsi = node.sourcePsi - val psiParent = sourcePsi?.parent - if (sourcePsi is PsiIdentifier && psiParent is PsiJavaModuleReferenceElement && sourcePsi == psiParent.lastChild) { - val reference = psiParent.reference + if (sourcePsi is PsiJavaModuleReferenceElement) { + val reference = sourcePsi.reference val target = reference?.resolve() if (target != null) { apiUsageProcessor.processJavaModuleReference(reference, target) diff --git a/uast/uast-common/src/org/jetbrains/uast/baseElements/UIdentifier.kt b/uast/uast-common/src/org/jetbrains/uast/baseElements/UIdentifier.kt index da289182b982..b2b6eeed8566 100644 --- a/uast/uast-common/src/org/jetbrains/uast/baseElements/UIdentifier.kt +++ b/uast/uast-common/src/org/jetbrains/uast/baseElements/UIdentifier.kt @@ -17,8 +17,6 @@ package org.jetbrains.uast import com.intellij.psi.PsiElement -import com.intellij.psi.PsiMethodCallExpression -import com.intellij.psi.PsiReferenceExpression import org.jetbrains.uast.internal.log open class UIdentifier( @@ -43,14 +41,6 @@ open class UIdentifier( open class LazyParentUIdentifier(psi: PsiElement?, private val givenParent: UElement?) : UIdentifier(psi, givenParent) { - override val uastParent: UElement? by lazy { - givenParent?.let { return@lazy it } - - val parent = sourcePsi?.parent ?: return@lazy null - if (parent is PsiReferenceExpression && parent.parent is PsiMethodCallExpression) { - return@lazy parent.parent.toUElement() - } - parent.toUElement() - } + override val uastParent: UElement? by lazy { givenParent ?: sourcePsi?.parent?.toUElement() } } \ No newline at end of file diff --git a/uast/uast-java/src/org/jetbrains/uast/java/JavaUastLanguagePlugin.kt b/uast/uast-java/src/org/jetbrains/uast/java/JavaUastLanguagePlugin.kt index 85396e0b3e48..9b0b5eea3d64 100644 --- a/uast/uast-java/src/org/jetbrains/uast/java/JavaUastLanguagePlugin.kt +++ b/uast/uast-java/src/org/jetbrains/uast/java/JavaUastLanguagePlugin.kt @@ -10,7 +10,9 @@ import com.intellij.psi.javadoc.PsiDocToken import com.intellij.psi.util.PsiTreeUtil import org.jetbrains.uast.* import org.jetbrains.uast.analysis.UastAnalysisPlugin +import org.jetbrains.uast.java.declarations.JavaLazyParentUIdentifier import org.jetbrains.uast.java.expressions.JavaUAnnotationCallExpression +import org.jetbrains.uast.java.expressions.JavaUModuleReferenceExpression import org.jetbrains.uast.java.expressions.JavaUNamedExpression import org.jetbrains.uast.java.expressions.JavaUSynchronizedExpression @@ -186,15 +188,15 @@ internal object JavaConverter { is PsiExpression -> convertExpression(el, givenParent, requiredType) is PsiStatement -> convertStatement(el, givenParent, requiredType) is PsiImportStatementBase -> el(build(::JavaUImportStatement)) - is PsiIdentifier -> el { JavaUSimpleNameReferenceExpression(el, el.text, givenParent) } - ?: el { LazyParentUIdentifier(el, givenParent) } // it is hack described in IDEA-207979 + is PsiIdentifier -> el { JavaLazyParentUIdentifier(el, givenParent) } is PsiKeyword -> if (el.text == PsiKeyword.SUPER || el.text == PsiKeyword.THIS) - el { LazyParentUIdentifier(el, givenParent) } + el { JavaLazyParentUIdentifier(el, givenParent) } else null is PsiNameValuePair -> el(build(::JavaUNamedExpression)) is PsiArrayInitializerMemberValue -> el(build(::JavaAnnotationArrayInitializerUCallExpression)) is PsiTypeElement -> el(build(::JavaUTypeReferenceExpression)) is PsiJavaCodeReferenceElement -> convertReference(el, givenParent, requiredType) + is PsiJavaModuleReferenceElement -> el (build(::JavaUModuleReferenceExpression)) is PsiAnnotation -> el.takeIf { PsiTreeUtil.getParentOfType(it, PsiAnnotationMemberValue::class.java, true) != null }?.let { el { JavaUAnnotationCallExpression(it, givenParent) } } diff --git a/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaLazyParentUIdentifier.kt b/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaLazyParentUIdentifier.kt new file mode 100644 index 000000000000..1251a02ce6c0 --- /dev/null +++ b/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaLazyParentUIdentifier.kt @@ -0,0 +1,21 @@ +// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package org.jetbrains.uast.java.declarations + +import com.intellij.psi.PsiElement +import com.intellij.psi.PsiMethodCallExpression +import com.intellij.psi.PsiReferenceExpression +import org.jetbrains.uast.* + +internal class JavaLazyParentUIdentifier(psi: PsiElement?, givenParent: UElement?) : LazyParentUIdentifier(psi, givenParent) { + + override val uastParent: UElement? by lazy { + givenParent?.let { return@lazy it } + + val parent = sourcePsi?.parent ?: return@lazy null + if (parent is PsiReferenceExpression && parent.parent is PsiMethodCallExpression) { + return@lazy parent.parent.toUElementOfType() ?: parent.toUElement() + } + parent.toUElement() + } + +} \ No newline at end of file diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUModuleReferenceExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUModuleReferenceExpression.kt new file mode 100644 index 000000000000..d1aa7405d512 --- /dev/null +++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUModuleReferenceExpression.kt @@ -0,0 +1,27 @@ +// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package org.jetbrains.uast.java.expressions + +import com.intellij.psi.* +import com.intellij.util.castSafelyTo +import org.jetbrains.uast.UElement +import org.jetbrains.uast.UMultiResolvable +import org.jetbrains.uast.USimpleNameReferenceExpression +import org.jetbrains.uast.java.JavaAbstractUExpression + +internal class JavaUModuleReferenceExpression( + override val sourcePsi: PsiJavaModuleReferenceElement, + givenParent: UElement? +) : JavaAbstractUExpression(givenParent), USimpleNameReferenceExpression, UMultiResolvable { + + override val identifier: String + get() = sourcePsi.referenceText + + override val resolvedName: String? + get() = resolve().castSafelyTo()?.name + + override fun resolve(): PsiElement? { + return sourcePsi.reference?.resolve() + } + + override fun multiResolve(): Iterable = resolve()?.let { listOf(PsiElementResolveResult(it)) } ?: emptyList() +} \ No newline at end of file diff --git a/uast/uast-java/src/org/jetbrains/uast/java/psiElementMapping.kt b/uast/uast-java/src/org/jetbrains/uast/java/psiElementMapping.kt index fd92306508ad..8611a43fa61b 100644 --- a/uast/uast-java/src/org/jetbrains/uast/java/psiElementMapping.kt +++ b/uast/uast-java/src/org/jetbrains/uast/java/psiElementMapping.kt @@ -45,7 +45,8 @@ private val conversionMapping = UElementToPsiElementMapping( USimpleNameReferenceExpression::class.java to ClassSet(PsiIdentifier::class.java, PsiReferenceExpression::class.java, PsiJavaCodeReferenceElement::class.java, - PsiDocToken::class.java), + PsiDocToken::class.java, + PsiJavaModuleReferenceElement::class.java), UIdentifier::class.java to ClassSet(PsiIdentifier::class.java, PsiKeyword::class.java), UNamedExpression::class.java to ClassSet(PsiNameValuePair::class.java), UCallExpression::class.java to ClassSet( diff --git a/uast/uast-tests/java/Simple/Annotation.refNames.txt b/uast/uast-tests/java/Simple/Annotation.refNames.txt index fd5295394de6..599c08403fe5 100644 --- a/uast/uast-tests/java/Simple/Annotation.refNames.txt +++ b/uast/uast-tests/java/Simple/Annotation.refNames.txt @@ -1,28 +1,9 @@ -Annotation -> UClass (name = Annotation) from PsiIdentifier:Annotation Annotation -> USimpleNameReferenceExpression (identifier = Annotation) from PsiJavaCodeReferenceElement:Annotation -Annotation -> USimpleNameReferenceExpression (identifier = Annotation) from PsiIdentifier:Annotation -A -> UClass (name = A) from PsiIdentifier:A -AnnotationInner -> UClass (name = AnnotationInner) from PsiIdentifier:AnnotationInner Annotation -> USimpleNameReferenceExpression (identifier = Annotation) from PsiJavaCodeReferenceElement:Annotation -Annotation -> USimpleNameReferenceExpression (identifier = Annotation) from PsiIdentifier:Annotation -value -> UAnnotationMethod (name = value) from PsiIdentifier:value AnnotationArray -> USimpleNameReferenceExpression (identifier = AnnotationArray) from PsiJavaCodeReferenceElement:AnnotationArray -AnnotationArray -> USimpleNameReferenceExpression (identifier = AnnotationArray) from PsiIdentifier:AnnotationArray Annotation -> USimpleNameReferenceExpression (identifier = Annotation) from PsiJavaCodeReferenceElement:Annotation -Annotation -> USimpleNameReferenceExpression (identifier = Annotation) from PsiIdentifier:Annotation -B1 -> UClass (name = B1) from PsiIdentifier:B1 AnnotationArray -> USimpleNameReferenceExpression (identifier = AnnotationArray) from PsiJavaCodeReferenceElement:AnnotationArray -AnnotationArray -> USimpleNameReferenceExpression (identifier = AnnotationArray) from PsiIdentifier:AnnotationArray -value -> UNamedExpression (name = value) from PsiIdentifier:value Annotation -> USimpleNameReferenceExpression (identifier = Annotation) from PsiJavaCodeReferenceElement:Annotation -Annotation -> USimpleNameReferenceExpression (identifier = Annotation) from PsiIdentifier:Annotation -B2 -> UClass (name = B2) from PsiIdentifier:B2 -AnnotationArray -> UClass (name = AnnotationArray) from PsiIdentifier:AnnotationArray Annotation -> USimpleNameReferenceExpression (identifier = Annotation) from PsiJavaCodeReferenceElement:Annotation -Annotation -> USimpleNameReferenceExpression (identifier = Annotation) from PsiIdentifier:Annotation -value -> UAnnotationMethod (name = value) from PsiIdentifier:value AnnotationArray -> USimpleNameReferenceExpression (identifier = AnnotationArray) from PsiJavaCodeReferenceElement:AnnotationArray -AnnotationArray -> USimpleNameReferenceExpression (identifier = AnnotationArray) from PsiIdentifier:AnnotationArray Annotation -> USimpleNameReferenceExpression (identifier = Annotation) from PsiJavaCodeReferenceElement:Annotation -Annotation -> USimpleNameReferenceExpression (identifier = Annotation) from PsiIdentifier:Annotation -C -> UClass (name = C) from PsiIdentifier:C diff --git a/uast/uast-tests/java/Simple/Anonymous.identifiers.txt b/uast/uast-tests/java/Simple/Anonymous.identifiers.txt index 6c87cd2a018e..9ee08f52612a 100644 --- a/uast/uast-tests/java/Simple/Anonymous.identifiers.txt +++ b/uast/uast-tests/java/Simple/Anonymous.identifiers.txt @@ -8,5 +8,5 @@ foo -> UMethod (name = foo) from PsiIdentifier:foo variable -> ULocalVariable (name = variable) from PsiIdentifier:variable variable -> USimpleNameReferenceExpression (identifier = variable) from PsiIdentifier:variable runnable -> USimpleNameReferenceExpression (identifier = runnable) from PsiIdentifier:runnable - run -> UQualifiedReferenceExpression from PsiIdentifier:run + run -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:run variable -> USimpleNameReferenceExpression (identifier = variable) from PsiIdentifier:variable diff --git a/uast/uast-tests/java/Simple/Anonymous.refNames.txt b/uast/uast-tests/java/Simple/Anonymous.refNames.txt index d49003c038ab..146d9c9f2f41 100644 --- a/uast/uast-tests/java/Simple/Anonymous.refNames.txt +++ b/uast/uast-tests/java/Simple/Anonymous.refNames.txt @@ -1,19 +1,7 @@ -Anonymous -> UClass (name = Anonymous) from PsiIdentifier:Anonymous -foo -> UMethod (name = foo) from PsiIdentifier:foo - variable -> ULocalVariable (name = variable) from PsiIdentifier:variable +Runnable -> USimpleNameReferenceExpression (identifier = Runnable) from PsiJavaCodeReferenceElement:Runnable Runnable -> USimpleNameReferenceExpression (identifier = Runnable) from PsiJavaCodeReferenceElement:Runnable - Runnable -> USimpleNameReferenceExpression (identifier = Runnable) from PsiIdentifier:Runnable - runnable -> ULocalVariable (name = runnable) from PsiIdentifier:runnable - Runnable -> USimpleNameReferenceExpression (identifier = Runnable) from PsiJavaCodeReferenceElement:Runnable - Runnable -> USimpleNameReferenceExpression (identifier = Runnable) from PsiIdentifier:Runnable - run -> UMethod (name = run) from PsiIdentifier:run - variable -> ULocalVariable (name = variable) from PsiIdentifier:variable variable -> USimpleNameReferenceExpression (identifier = variable) from PsiReferenceExpression:variable - variable -> USimpleNameReferenceExpression (identifier = variable) from PsiIdentifier:variable run -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiMethodCallExpression:runnable.run() run -> UQualifiedReferenceExpression from PsiReferenceExpression:runnable.run runnable -> USimpleNameReferenceExpression (identifier = runnable) from PsiReferenceExpression:runnable - runnable -> USimpleNameReferenceExpression (identifier = runnable) from PsiIdentifier:runnable - run -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:run variable -> USimpleNameReferenceExpression (identifier = variable) from PsiReferenceExpression:variable - variable -> USimpleNameReferenceExpression (identifier = variable) from PsiIdentifier:variable diff --git a/uast/uast-tests/java/Simple/ComplexCalls.identifiers.txt b/uast/uast-tests/java/Simple/ComplexCalls.identifiers.txt index ea5c2b2ca617..6097c02c6384 100644 --- a/uast/uast-tests/java/Simple/ComplexCalls.identifiers.txt +++ b/uast/uast-tests/java/Simple/ComplexCalls.identifiers.txt @@ -35,19 +35,19 @@ args -> UParameter (name = args) from PsiIdentifier:args b -> ULocalVariable (name = b) from PsiIdentifier:b B -> USimpleNameReferenceExpression (identifier = B) from PsiIdentifier:B b -> USimpleNameReferenceExpression (identifier = b) from PsiIdentifier:b - bar -> UQualifiedReferenceExpression from PsiIdentifier:bar - barR -> UQualifiedReferenceExpression from PsiIdentifier:barR - bar -> UQualifiedReferenceExpression from PsiIdentifier:bar - foo -> UQualifiedReferenceExpression from PsiIdentifier:foo + bar -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:bar + barR -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 1)) from PsiIdentifier:barR + bar -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:bar + foo -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:foo b -> USimpleNameReferenceExpression (identifier = b) from PsiIdentifier:b - bar -> UQualifiedReferenceExpression from PsiIdentifier:bar - bar -> UQualifiedReferenceExpression from PsiIdentifier:bar - bar -> UQualifiedReferenceExpression from PsiIdentifier:bar - foo -> UQualifiedReferenceExpression from PsiIdentifier:foo + bar -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:bar + bar -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:bar + bar -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:bar + foo -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:foo b -> USimpleNameReferenceExpression (identifier = b) from PsiIdentifier:b a -> UQualifiedReferenceExpression from PsiIdentifier:a a -> UQualifiedReferenceExpression from PsiIdentifier:a a -> UQualifiedReferenceExpression from PsiIdentifier:a - bar -> UQualifiedReferenceExpression from PsiIdentifier:bar + bar -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:bar a -> UQualifiedReferenceExpression from PsiIdentifier:a - foo -> UQualifiedReferenceExpression from PsiIdentifier:foo + foo -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:foo diff --git a/uast/uast-tests/java/Simple/ComplexCalls.refNames.txt b/uast/uast-tests/java/Simple/ComplexCalls.refNames.txt index 9b5360d12a78..4c57b1b6e251 100644 --- a/uast/uast-tests/java/Simple/ComplexCalls.refNames.txt +++ b/uast/uast-tests/java/Simple/ComplexCalls.refNames.txt @@ -1,54 +1,21 @@ -A -> UClass (name = A) from PsiIdentifier:A B -> USimpleNameReferenceExpression (identifier = B) from PsiJavaCodeReferenceElement:B -B -> USimpleNameReferenceExpression (identifier = B) from PsiIdentifier:B -A -> UMethod (name = A) from PsiIdentifier:A super -> UCallExpression (kind = UastCallKind(name='constructor_call'), argCount = 0)) from PsiReferenceExpression:super -A -> UMethod (name = A) from PsiIdentifier:A -a -> UParameter (name = a) from PsiIdentifier:a super -> UCallExpression (kind = UastCallKind(name='constructor_call'), argCount = 1)) from PsiReferenceExpression:super a -> USimpleNameReferenceExpression (identifier = a) from PsiReferenceExpression:a - a -> USimpleNameReferenceExpression (identifier = a) from PsiIdentifier:a -foo -> UMethod (name = foo) from PsiIdentifier:foo -C -> UClass (name = C) from PsiIdentifier:C A -> USimpleNameReferenceExpression (identifier = A) from PsiJavaCodeReferenceElement:A -A -> USimpleNameReferenceExpression (identifier = A) from PsiIdentifier:A -B -> UClass (name = B) from PsiIdentifier:B -B -> UMethod (name = B) from PsiIdentifier:B -a -> UParameter (name = a) from PsiIdentifier:a -B -> UMethod (name = B) from PsiIdentifier:B this -> UCallExpression (kind = UastCallKind(name='constructor_call'), argCount = 1)) from PsiReferenceExpression:this A -> USimpleNameReferenceExpression (identifier = A) from PsiJavaCodeReferenceElement:A -A -> USimpleNameReferenceExpression (identifier = A) from PsiIdentifier:A -a -> UField (name = a) from PsiIdentifier:a A -> USimpleNameReferenceExpression (identifier = A) from PsiJavaCodeReferenceElement:A -A -> USimpleNameReferenceExpression (identifier = A) from PsiIdentifier:A C -> USimpleNameReferenceExpression (identifier = C) from PsiJavaCodeReferenceElement:C -C -> USimpleNameReferenceExpression (identifier = C) from PsiIdentifier:C -c -> UField (name = c) from PsiIdentifier:c C -> USimpleNameReferenceExpression (identifier = C) from PsiJavaCodeReferenceElement:C -C -> USimpleNameReferenceExpression (identifier = C) from PsiIdentifier:C A -> USimpleNameReferenceExpression (identifier = A) from PsiJavaCodeReferenceElement:A -A -> USimpleNameReferenceExpression (identifier = A) from PsiIdentifier:A -bar -> UMethod (name = bar) from PsiIdentifier:bar A -> USimpleNameReferenceExpression (identifier = A) from PsiJavaCodeReferenceElement:A - A -> USimpleNameReferenceExpression (identifier = A) from PsiIdentifier:A A -> USimpleNameReferenceExpression (identifier = A) from PsiJavaCodeReferenceElement:A -A -> USimpleNameReferenceExpression (identifier = A) from PsiIdentifier:A -barR -> UMethod (name = barR) from PsiIdentifier:barR String -> USimpleNameReferenceExpression (identifier = String) from PsiJavaCodeReferenceElement:String -String -> USimpleNameReferenceExpression (identifier = String) from PsiIdentifier:String -a -> UParameter (name = a) from PsiIdentifier:a bar -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiReferenceExpression:bar - bar -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:bar -main -> UMethod (name = main) from PsiIdentifier:main String -> USimpleNameReferenceExpression (identifier = String) from PsiJavaCodeReferenceElement:String -String -> USimpleNameReferenceExpression (identifier = String) from PsiIdentifier:String -args -> UParameter (name = args) from PsiIdentifier:args B -> USimpleNameReferenceExpression (identifier = B) from PsiJavaCodeReferenceElement:B - B -> USimpleNameReferenceExpression (identifier = B) from PsiIdentifier:B - b -> ULocalVariable (name = b) from PsiIdentifier:b B -> USimpleNameReferenceExpression (identifier = B) from PsiJavaCodeReferenceElement:B - B -> USimpleNameReferenceExpression (identifier = B) from PsiIdentifier:B foo -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiMethodCallExpression:b.bar().barR("asdf").bar().foo() foo -> UQualifiedReferenceExpression from PsiReferenceExpression:b.bar().barR("asdf").bar().foo bar -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiMethodCallExpression:b.bar().barR("asdf").bar() @@ -58,11 +25,6 @@ args -> UParameter (name = args) from PsiIdentifier:args bar -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiMethodCallExpression:b.bar() bar -> UQualifiedReferenceExpression from PsiReferenceExpression:b.bar b -> USimpleNameReferenceExpression (identifier = b) from PsiReferenceExpression:b - b -> USimpleNameReferenceExpression (identifier = b) from PsiIdentifier:b - bar -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:bar - barR -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 1)) from PsiIdentifier:barR - bar -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:bar - foo -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:foo foo -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiMethodCallExpression:b.bar().bar().bar().foo() foo -> UQualifiedReferenceExpression from PsiReferenceExpression:b.bar().bar().bar().foo bar -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiMethodCallExpression:b.bar().bar().bar() @@ -72,11 +34,6 @@ args -> UParameter (name = args) from PsiIdentifier:args bar -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiMethodCallExpression:b.bar() bar -> UQualifiedReferenceExpression from PsiReferenceExpression:b.bar b -> USimpleNameReferenceExpression (identifier = b) from PsiReferenceExpression:b - b -> USimpleNameReferenceExpression (identifier = b) from PsiIdentifier:b - bar -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:bar - bar -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:bar - bar -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:bar - foo -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:foo foo -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiMethodCallExpression:b.a.a.a.bar().a.foo() foo -> UQualifiedReferenceExpression from PsiReferenceExpression:b.a.a.a.bar().a.foo a -> UQualifiedReferenceExpression from PsiReferenceExpression:b.a.a.a.bar().a @@ -86,10 +43,3 @@ args -> UParameter (name = args) from PsiIdentifier:args a -> UQualifiedReferenceExpression from PsiReferenceExpression:b.a.a a -> UQualifiedReferenceExpression from PsiReferenceExpression:b.a b -> USimpleNameReferenceExpression (identifier = b) from PsiReferenceExpression:b - b -> USimpleNameReferenceExpression (identifier = b) from PsiIdentifier:b - a -> UQualifiedReferenceExpression from PsiIdentifier:a - a -> UQualifiedReferenceExpression from PsiIdentifier:a - a -> UQualifiedReferenceExpression from PsiIdentifier:a - bar -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:bar - a -> UQualifiedReferenceExpression from PsiIdentifier:a - foo -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:foo diff --git a/uast/uast-tests/java/Simple/InnerClass.refNames.txt b/uast/uast-tests/java/Simple/InnerClass.refNames.txt index cfb26fcb26ed..8bd75a7b413a 100644 --- a/uast/uast-tests/java/Simple/InnerClass.refNames.txt +++ b/uast/uast-tests/java/Simple/InnerClass.refNames.txt @@ -1,15 +1,4 @@ -AccessingProtectedMembersFromSubclass -> UClass (name = AccessingProtectedMembersFromSubclass) from PsiIdentifier:AccessingProtectedMembersFromSubclass ProtectedMembers -> USimpleNameReferenceExpression (identifier = ProtectedMembers) from PsiJavaCodeReferenceElement:ProtectedMembers -ProtectedMembers -> USimpleNameReferenceExpression (identifier = ProtectedMembers) from PsiIdentifier:ProtectedMembers -StaticInnerImpl1 -> UClass (name = StaticInnerImpl1) from PsiIdentifier:StaticInnerImpl1 StaticInner -> UQualifiedReferenceExpression from PsiJavaCodeReferenceElement:ProtectedMembers.StaticInner ProtectedMembers -> USimpleNameReferenceExpression (identifier = ProtectedMembers) from PsiJavaCodeReferenceElement:ProtectedMembers -ProtectedMembers -> USimpleNameReferenceExpression (identifier = ProtectedMembers) from PsiIdentifier:ProtectedMembers -StaticInner -> UQualifiedReferenceExpression from PsiIdentifier:StaticInner -StaticInnerImpl2 -> UClass (name = StaticInnerImpl2) from PsiIdentifier:StaticInnerImpl2 StaticInner -> USimpleNameReferenceExpression (identifier = StaticInner) from PsiJavaCodeReferenceElement:StaticInner -StaticInner -> USimpleNameReferenceExpression (identifier = StaticInner) from PsiIdentifier:StaticInner -ProtectedMembers -> UClass (name = ProtectedMembers) from PsiIdentifier:ProtectedMembers -method -> UMethod (name = method) from PsiIdentifier:method -staticMethod -> UMethod (name = staticMethod) from PsiIdentifier:staticMethod -StaticInner -> UClass (name = StaticInner) from PsiIdentifier:StaticInner diff --git a/uast/uast-tests/java/Simple/TryWithResources.identifiers.txt b/uast/uast-tests/java/Simple/TryWithResources.identifiers.txt index 5bc64b6a4b03..90690f6eaa2d 100644 --- a/uast/uast-tests/java/Simple/TryWithResources.identifiers.txt +++ b/uast/uast-tests/java/Simple/TryWithResources.identifiers.txt @@ -12,4 +12,4 @@ foo -> UMethod (name = foo) from PsiIdentifier:foo FileReader -> USimpleNameReferenceExpression (identifier = FileReader) from PsiIdentifier:FileReader path -> USimpleNameReferenceExpression (identifier = path) from PsiIdentifier:path br -> USimpleNameReferenceExpression (identifier = br) from PsiIdentifier:br - readLine -> UQualifiedReferenceExpression from PsiIdentifier:readLine + readLine -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:readLine diff --git a/uast/uast-tests/java/Simple/TryWithResources.refNames.txt b/uast/uast-tests/java/Simple/TryWithResources.refNames.txt index 19252e0f1c2d..b62049b4e176 100644 --- a/uast/uast-tests/java/Simple/TryWithResources.refNames.txt +++ b/uast/uast-tests/java/Simple/TryWithResources.refNames.txt @@ -1,28 +1,13 @@ BufferedReader -> UQualifiedReferenceExpression from PsiJavaCodeReferenceElement:java.io.BufferedReader io -> UQualifiedReferenceExpression from PsiJavaCodeReferenceElement:java.io java -> USimpleNameReferenceExpression (identifier = java) from PsiJavaCodeReferenceElement:java -java -> USimpleNameReferenceExpression (identifier = java) from PsiIdentifier:java -io -> UQualifiedReferenceExpression from PsiIdentifier:io -BufferedReader -> UQualifiedReferenceExpression from PsiIdentifier:BufferedReader FileReader -> UQualifiedReferenceExpression from PsiJavaCodeReferenceElement:java.io.FileReader io -> UQualifiedReferenceExpression from PsiJavaCodeReferenceElement:java.io java -> USimpleNameReferenceExpression (identifier = java) from PsiJavaCodeReferenceElement:java -java -> USimpleNameReferenceExpression (identifier = java) from PsiIdentifier:java -io -> UQualifiedReferenceExpression from PsiIdentifier:io -FileReader -> UQualifiedReferenceExpression from PsiIdentifier:FileReader -TryWithResources -> UClass (name = TryWithResources) from PsiIdentifier:TryWithResources -foo -> UMethod (name = foo) from PsiIdentifier:foo BufferedReader -> USimpleNameReferenceExpression (identifier = BufferedReader) from PsiJavaCodeReferenceElement:BufferedReader - BufferedReader -> USimpleNameReferenceExpression (identifier = BufferedReader) from PsiIdentifier:BufferedReader - br -> ULocalVariable (name = br) from PsiIdentifier:br BufferedReader -> USimpleNameReferenceExpression (identifier = BufferedReader) from PsiJavaCodeReferenceElement:BufferedReader - BufferedReader -> USimpleNameReferenceExpression (identifier = BufferedReader) from PsiIdentifier:BufferedReader FileReader -> USimpleNameReferenceExpression (identifier = FileReader) from PsiJavaCodeReferenceElement:FileReader - FileReader -> USimpleNameReferenceExpression (identifier = FileReader) from PsiIdentifier:FileReader path -> USimpleNameReferenceExpression (identifier = path) from PsiReferenceExpression:path - path -> USimpleNameReferenceExpression (identifier = path) from PsiIdentifier:path readLine -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiMethodCallExpression:br.readLine() readLine -> UQualifiedReferenceExpression from PsiReferenceExpression:br.readLine br -> USimpleNameReferenceExpression (identifier = br) from PsiReferenceExpression:br - br -> USimpleNameReferenceExpression (identifier = br) from PsiIdentifier:br - readLine -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) from PsiIdentifier:readLine