Uast: stop resolve parts of fqn to the full-name target

This commit is contained in:
Nicolay Mitropolsky
2019-03-20 20:01:27 +03:00
parent 403801b0b3
commit 90894176f9
9 changed files with 82 additions and 53 deletions
+7 -7
View File
@@ -1,13 +1,13 @@
UImportStatement (isOnDemand = false) -> UQualifiedReferenceExpression -> null: null
UQualifiedReferenceExpression -> UQualifiedReferenceExpression -> null: null
UQualifiedReferenceExpression -> USimpleNameReferenceExpression (identifier = java) -> null: null
UQualifiedReferenceExpression -> USimpleNameReferenceExpression (identifier = io) -> null: null
UQualifiedReferenceExpression -> USimpleNameReferenceExpression (identifier = Closeable) -> null: null
UQualifiedReferenceExpression -> USimpleNameReferenceExpression (identifier = java) -> PsiPackage:java: java
UQualifiedReferenceExpression -> USimpleNameReferenceExpression (identifier = io) -> PsiPackage:java.io: io
UQualifiedReferenceExpression -> USimpleNameReferenceExpression (identifier = Closeable) -> PsiClass:Closeable: Closeable
UImportStatement (isOnDemand = false) -> UQualifiedReferenceExpression -> null: null
UQualifiedReferenceExpression -> UQualifiedReferenceExpression -> null: null
UQualifiedReferenceExpression -> USimpleNameReferenceExpression (identifier = java) -> null: null
UQualifiedReferenceExpression -> USimpleNameReferenceExpression (identifier = io) -> null: null
UQualifiedReferenceExpression -> USimpleNameReferenceExpression (identifier = InputStream) -> null: null
UQualifiedReferenceExpression -> USimpleNameReferenceExpression (identifier = java) -> PsiPackage:java: java
UQualifiedReferenceExpression -> USimpleNameReferenceExpression (identifier = io) -> PsiPackage:java.io: io
UQualifiedReferenceExpression -> USimpleNameReferenceExpression (identifier = InputStream) -> PsiClass:InputStream: InputStream
UTypeReferenceExpression (name = java.lang.Runnable) -> USimpleNameReferenceExpression (identifier = Runnable) -> PsiClass:Runnable: Runnable
UBlockExpression -> UQualifiedReferenceExpression -> KtLightMethodImpl:run: run
UQualifiedReferenceExpression -> USimpleNameReferenceExpression (identifier = runnable) -> LightVariableBuilder:runnable: runnable
@@ -19,6 +19,6 @@ UQualifiedReferenceExpression -> USimpleNameReferenceExpression (identifier = In
UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) -> USimpleNameReferenceExpression (identifier = run) -> PsiMethod:run: run
UTypeReferenceExpression (name = java.lang.Runnable) -> USimpleNameReferenceExpression (identifier = Runnable) -> PsiClass:Runnable: Runnable
UTypeReferenceExpression (name = java.io.Closeable) -> USimpleNameReferenceExpression (identifier = Closeable) -> PsiClass:Closeable: Closeable
UTypeReferenceExpression (name = java.io.InputStream) -> USimpleNameReferenceExpression (identifier = InputStream) -> PsiClass:InputStream: InputStream
UTypeReferenceExpression (name = java.io.InputStream) -> USimpleNameReferenceExpression (identifier = InputStream) -> PsiMethod:InputStream: InputStream
UTypeReferenceExpression (name = java.lang.Runnable) -> USimpleNameReferenceExpression (identifier = Runnable) -> PsiClass:Runnable: Runnable
UTypeReferenceExpression (name = int) -> USimpleNameReferenceExpression (identifier = Int) -> PsiClass:Integer: Integer
+1 -1
View File
@@ -1,5 +1,5 @@
UTypeReferenceExpression (name = kotlin.Suppress) -> USimpleNameReferenceExpression (identifier = Suppress) -> PsiClass:Suppress: Suppress
UCallExpression (kind = UastCallKind(name='method_call'), argCount = 1)) -> USimpleNameReferenceExpression (identifier = println) -> null: null
UTypeReferenceExpression (name = kotlin.SinceKotlin) -> USimpleNameReferenceExpression (identifier = kotlin) -> PsiClass:SinceKotlin: SinceKotlin
UTypeReferenceExpression (name = kotlin.SinceKotlin) -> USimpleNameReferenceExpression (identifier = kotlin) -> PsiPackage:kotlin: kotlin
UTypeReferenceExpression (name = kotlin.SinceKotlin) -> USimpleNameReferenceExpression (identifier = SinceKotlin) -> PsiClass:SinceKotlin: SinceKotlin
UTypeReferenceExpression (name = java.lang.String) -> USimpleNameReferenceExpression (identifier = String) -> PsiClass:String: String
+2
View File
@@ -5,6 +5,7 @@ fun foo(parameter: Int): String {
return result
}
typealias ListOfLists = List<List<String>>
fun <T> parameterizedFoo(arg: T?) {
val a = arg
@@ -13,6 +14,7 @@ fun <T> parameterizedFoo(arg: T?) {
val tl: List<T> = listOf(at)
val tsl: List<String> = tl.map { it.toString() }
val lls: List<List<String>>
val llsAliased: ListOfLists
val llt: List<List<T>>
parameterizedFoo<List<String>>(emptyList())
+5 -3
View File
@@ -28,14 +28,14 @@ UFile (package = )
ULocalVariable (name = at)
UExpressionList (elvis)
UDeclarationsExpression
ULocalVariable (name = var708e1d08)
ULocalVariable (name = var708e23eb)
UAnnotation (fqName = org.jetbrains.annotations.Nullable)
USimpleNameReferenceExpression (identifier = arg)
UIfExpression
UBinaryExpression (operator = !=)
USimpleNameReferenceExpression (identifier = var708e1d08)
USimpleNameReferenceExpression (identifier = var708e23eb)
ULiteralExpression (value = null)
USimpleNameReferenceExpression (identifier = var708e1d08)
USimpleNameReferenceExpression (identifier = var708e23eb)
UReturnExpression
UDeclarationsExpression
ULocalVariable (name = tl)
@@ -59,6 +59,8 @@ UFile (package = )
USimpleNameReferenceExpression (identifier = toString, resolvesTo = null)
UDeclarationsExpression
ULocalVariable (name = lls)
UDeclarationsExpression
ULocalVariable (name = llsAliased)
UDeclarationsExpression
ULocalVariable (name = llt)
UCallExpression (kind = UastCallKind(name='method_call'), argCount = 1))
+3 -2
View File
@@ -8,14 +8,15 @@ public final class TypeReferencesKt {
public static final fun parameterizedFoo(@org.jetbrains.annotations.Nullable arg: T) : void {
var a: T = arg
var at: T = elvis {
@org.jetbrains.annotations.Nullable var var708e1d08: T = arg
if (var708e1d08 != null) var708e1d08 else return
@org.jetbrains.annotations.Nullable var var708e23eb: T = arg
if (var708e23eb != null) var708e23eb else return
}
var tl: java.util.List<? extends T> = listOf(at)
var tsl: java.util.List<? extends java.lang.String> = tl.map({
it.toString()
})
var lls: java.util.List<? extends java.util.List<? extends java.lang.String>>
var llsAliased: java.util.List<? extends java.util.List<? extends java.lang.String>>
var llt: java.util.List<? extends java.util.List<? extends T>>
parameterizedFoo(emptyList())
}
+5 -1
View File
@@ -5,10 +5,13 @@ UTypeReferenceExpression (name = java.lang.String) -> USimpleNameReferenceExpres
UBinaryExpression (operator = +) -> USimpleNameReferenceExpression (identifier = +) -> null: null
UBinaryExpression (operator = +) -> USimpleNameReferenceExpression (identifier = varWithoutType) -> LightVariableBuilder:varWithoutType: varWithoutType
UReturnExpression -> USimpleNameReferenceExpression (identifier = result) -> LightVariableBuilder:result: result
UTypeReferenceExpression (name = <ErrorType>) -> USimpleNameReferenceExpression (identifier = List) -> PsiClass:List: List
UTypeReferenceExpression (name = <ErrorType>) -> USimpleNameReferenceExpression (identifier = List) -> PsiClass:List: List
UTypeReferenceExpression (name = <ErrorType>) -> USimpleNameReferenceExpression (identifier = String) -> PsiClass:String: String
UTypeReferenceExpression (name = T) -> USimpleNameReferenceExpression (identifier = T) -> KotlinLightTypeParameter:T: T
ULocalVariable (name = a) -> USimpleNameReferenceExpression (identifier = arg) -> Light Parameter: arg
UTypeReferenceExpression (name = T) -> USimpleNameReferenceExpression (identifier = T) -> KotlinLightTypeParameter:T: T
ULocalVariable (name = var708e1d08) -> USimpleNameReferenceExpression (identifier = arg) -> Light Parameter: arg
ULocalVariable (name = var708e23eb) -> USimpleNameReferenceExpression (identifier = arg) -> Light Parameter: arg
UExpressionList (elvis) -> USimpleNameReferenceExpression (identifier = ?:) -> null: null
UTypeReferenceExpression (name = java.util.List<? extends T>) -> USimpleNameReferenceExpression (identifier = List) -> PsiClass:List: List
UTypeReferenceExpression (name = T) -> USimpleNameReferenceExpression (identifier = T) -> KotlinLightTypeParameter:T: T
@@ -25,6 +28,7 @@ UTypeReferenceExpression (name = T) -> USimpleNameReferenceExpression (identifie
UTypeReferenceExpression (name = java.util.List<? extends java.util.List<? extends java.lang.String>>) -> USimpleNameReferenceExpression (identifier = List) -> PsiClass:List: List
UTypeReferenceExpression (name = java.util.List<? extends java.lang.String>) -> USimpleNameReferenceExpression (identifier = List) -> PsiClass:List: List
UTypeReferenceExpression (name = java.lang.String) -> USimpleNameReferenceExpression (identifier = String) -> PsiClass:String: String
UTypeReferenceExpression (name = java.util.List<? extends java.util.List<? extends java.lang.String>>) -> USimpleNameReferenceExpression (identifier = ListOfLists) -> PsiClass:List: List
UTypeReferenceExpression (name = java.util.List<? extends java.util.List<? extends T>>) -> USimpleNameReferenceExpression (identifier = List) -> PsiClass:List: List
UTypeReferenceExpression (name = java.util.List<? extends T>) -> USimpleNameReferenceExpression (identifier = List) -> PsiClass:List: List
UTypeReferenceExpression (name = T) -> USimpleNameReferenceExpression (identifier = T) -> KotlinLightTypeParameter:T: T