[uast-java] stop converting PsiIdentifier to UReferenceExpressions (IDEA-207979)

GitOrigin-RevId: c165bddcc9e446492e0dda78716ef0498f81f49d
This commit is contained in:
Nicolay Mitropolsky
2020-04-08 17:07:23 +00:00
committed by intellij-monorepo-bot
parent 657cf85b5a
commit 9bf893ae27
14 changed files with 71 additions and 138 deletions
@@ -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)
@@ -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() }
}
@@ -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<UImportStatement>(build(::JavaUImportStatement))
is PsiIdentifier -> el<USimpleNameReferenceExpression> { JavaUSimpleNameReferenceExpression(el, el.text, givenParent) }
?: el<UIdentifier> { LazyParentUIdentifier(el, givenParent) } // it is hack described in IDEA-207979
is PsiIdentifier -> el<UIdentifier> { JavaLazyParentUIdentifier(el, givenParent) }
is PsiKeyword -> if (el.text == PsiKeyword.SUPER || el.text == PsiKeyword.THIS)
el<UIdentifier> { LazyParentUIdentifier(el, givenParent) }
el<UIdentifier> { JavaLazyParentUIdentifier(el, givenParent) }
else null
is PsiNameValuePair -> el<UNamedExpression>(build(::JavaUNamedExpression))
is PsiArrayInitializerMemberValue -> el<UCallExpression>(build(::JavaAnnotationArrayInitializerUCallExpression))
is PsiTypeElement -> el<UTypeReferenceExpression>(build(::JavaUTypeReferenceExpression))
is PsiJavaCodeReferenceElement -> convertReference(el, givenParent, requiredType)
is PsiJavaModuleReferenceElement -> el<UReferenceExpression> (build(::JavaUModuleReferenceExpression))
is PsiAnnotation -> el.takeIf { PsiTreeUtil.getParentOfType(it, PsiAnnotationMemberValue::class.java, true) != null }?.let {
el<UExpression> { JavaUAnnotationCallExpression(it, givenParent) }
}
@@ -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<UCallExpression>() ?: parent.toUElement()
}
parent.toUElement()
}
}
@@ -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<PsiNamedElement>()?.name
override fun resolve(): PsiElement? {
return sourcePsi.reference?.resolve()
}
override fun multiResolve(): Iterable<ResolveResult> = resolve()?.let { listOf(PsiElementResolveResult(it)) } ?: emptyList()
}
@@ -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(
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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