[Analysis API] introduce KtSymbolOrigin.SUBSTITUTION_OVERRIDE
^KT-52043
This commit is contained in:
+1
-1
@@ -52,7 +52,7 @@ internal class KtFirSymbolContainingDeclarationProvider(
|
||||
KtSymbolOrigin.LIBRARY, KtSymbolOrigin.JAVA, KtSymbolOrigin.JAVA_SYNTHETIC_PROPERTY ->
|
||||
getContainingDeclarationForLibrarySymbol(symbol)
|
||||
KtSymbolOrigin.PROPERTY_BACKING_FIELD -> getContainingDeclarationForBackingFieldSymbol(symbol)
|
||||
KtSymbolOrigin.INTERSECTION_OVERRIDE -> TODO()
|
||||
KtSymbolOrigin.INTERSECTION_OVERRIDE, KtSymbolOrigin.SUBSTITUTION_OVERRIDE -> TODO()
|
||||
KtSymbolOrigin.SAM_CONSTRUCTOR -> null
|
||||
KtSymbolOrigin.PLUGIN -> TODO("Containing declaration is requested for ${ DebugSymbolRenderer.render(symbol) }")
|
||||
KtSymbolOrigin.DELEGATED -> TODO()
|
||||
|
||||
+3
-5
@@ -76,11 +76,9 @@ internal tailrec fun FirDeclaration.ktSymbolOrigin(): KtSymbolOrigin = when (ori
|
||||
original.ktSymbolOrigin()
|
||||
}
|
||||
is FirDeclarationOrigin.Plugin -> KtSymbolOrigin.PLUGIN
|
||||
else -> {
|
||||
val overridden = (this as? FirCallableDeclaration)?.originalIfFakeOverride()
|
||||
?: throw InvalidFirDeclarationOriginForSymbol(this)
|
||||
overridden.ktSymbolOrigin()
|
||||
}
|
||||
FirDeclarationOrigin.RenamedForOverride -> KtSymbolOrigin.JAVA
|
||||
FirDeclarationOrigin.SubstitutionOverride -> KtSymbolOrigin.SUBSTITUTION_OVERRIDE
|
||||
FirDeclarationOrigin.DynamicScope -> throw InvalidFirDeclarationOriginForSymbol(this)
|
||||
}
|
||||
|
||||
class InvalidFirDeclarationOriginForSymbol(declaration: FirDeclaration) :
|
||||
|
||||
@@ -88,6 +88,17 @@ public enum class KtSymbolOrigin {
|
||||
*/
|
||||
INTERSECTION_OVERRIDE,
|
||||
|
||||
/**
|
||||
* Consider the following code:
|
||||
* ```
|
||||
* interface A<T> { fun x(): T }
|
||||
* interface B : A<Int> { }
|
||||
* ```
|
||||
*
|
||||
* The B will have a member B.foo(): Int, this member is generated inside interface B with substtution T -> Int, such members are SUBSTITUTION_OVERRIDE
|
||||
*/
|
||||
SUBSTITUTION_OVERRIDE,
|
||||
|
||||
/**
|
||||
* Member symbol which was generated by compiler when using `by` interface delegation
|
||||
* e.g,
|
||||
|
||||
+1
-1
@@ -128,7 +128,7 @@ KtFunctionSymbol:
|
||||
isSuspend: false
|
||||
modality: ABSTRACT
|
||||
name: fromSuper
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
receiverType: null
|
||||
returnType: O
|
||||
symbolKind: CLASS_MEMBER
|
||||
|
||||
@@ -377,7 +377,7 @@ KtFunctionSymbol:
|
||||
isSuspend: false
|
||||
modality: ABSTRACT
|
||||
name: contains
|
||||
origin: LIBRARY
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
receiverType: null
|
||||
returnType: kotlin/Boolean
|
||||
symbolKind: CLASS_MEMBER
|
||||
@@ -405,7 +405,7 @@ KtFunctionSymbol:
|
||||
isSuspend: false
|
||||
modality: ABSTRACT
|
||||
name: containsAll
|
||||
origin: LIBRARY
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
receiverType: null
|
||||
returnType: kotlin/Boolean
|
||||
symbolKind: CLASS_MEMBER
|
||||
@@ -433,7 +433,7 @@ KtFunctionSymbol:
|
||||
isSuspend: false
|
||||
modality: ABSTRACT
|
||||
name: get
|
||||
origin: LIBRARY
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
receiverType: null
|
||||
returnType: E
|
||||
symbolKind: CLASS_MEMBER
|
||||
@@ -461,7 +461,7 @@ KtFunctionSymbol:
|
||||
isSuspend: false
|
||||
modality: ABSTRACT
|
||||
name: indexOf
|
||||
origin: LIBRARY
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
receiverType: null
|
||||
returnType: kotlin/Int
|
||||
symbolKind: CLASS_MEMBER
|
||||
@@ -541,7 +541,7 @@ KtFunctionSymbol:
|
||||
isSuspend: false
|
||||
modality: ABSTRACT
|
||||
name: lastIndexOf
|
||||
origin: LIBRARY
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
receiverType: null
|
||||
returnType: kotlin/Int
|
||||
symbolKind: CLASS_MEMBER
|
||||
|
||||
Vendored
+2
-2
@@ -6,7 +6,7 @@ KtFunctionSymbol:
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: test/ClassWithGenericBase.withOuterGeneric
|
||||
name: withOuterGeneric
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: test/Base.withOwnGeneric
|
||||
@@ -16,7 +16,7 @@ KtFunctionSymbol:
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: test/ClassWithGenericBase.withOuterAndOwnGeneric
|
||||
name: withOuterAndOwnGeneric
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: kotlin/Any.equals
|
||||
|
||||
Vendored
+2
-2
@@ -6,7 +6,7 @@ KtKotlinPropertySymbol:
|
||||
KtKotlinPropertySymbol:
|
||||
callableIdIfNonLocal: test/ClassWithGenericBase.withOuterGeneric
|
||||
name: withOuterGeneric
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtKotlinPropertySymbol:
|
||||
callableIdIfNonLocal: test/Base.withOwnGeneric
|
||||
@@ -16,7 +16,7 @@ KtKotlinPropertySymbol:
|
||||
KtKotlinPropertySymbol:
|
||||
callableIdIfNonLocal: test/ClassWithGenericBase.withOuterAndOwnGeneric
|
||||
name: withOuterAndOwnGeneric
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: kotlin/Any.equals
|
||||
|
||||
Vendored
+3
-3
@@ -6,7 +6,7 @@ KtFunctionSymbol:
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: test/ClassWithInterfaceWithFun.withOuterGeneric_InterfaceWithFun
|
||||
name: withOuterGeneric_InterfaceWithFun
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: test/InterfaceWithFunBase.noGenerics_InterfaceWithFunBase
|
||||
@@ -16,12 +16,12 @@ KtFunctionSymbol:
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: test/InterfaceWithFun.withOuterGenericT1_InterfaceWithFunBase
|
||||
name: withOuterGenericT1_InterfaceWithFunBase
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: test/ClassWithInterfaceWithFun.withOuterGenericT2_InterfaceWithFunBase
|
||||
name: withOuterGenericT2_InterfaceWithFunBase
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: kotlin/Any.equals
|
||||
|
||||
Vendored
+6
-6
@@ -6,7 +6,7 @@ KtKotlinPropertySymbol:
|
||||
KtKotlinPropertySymbol:
|
||||
callableIdIfNonLocal: test/ClassWithInterfaceWithVal.withOuterGeneric_InterfaceWithVal
|
||||
name: withOuterGeneric_InterfaceWithVal
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtKotlinPropertySymbol:
|
||||
callableIdIfNonLocal: test/InterfaceWithVal.withOwnGeneric_InterfaceWithVal
|
||||
@@ -16,7 +16,7 @@ KtKotlinPropertySymbol:
|
||||
KtKotlinPropertySymbol:
|
||||
callableIdIfNonLocal: test/ClassWithInterfaceWithVal.withOwnAndOuterGeneric_InterfaceWithVal
|
||||
name: withOwnAndOuterGeneric_InterfaceWithVal
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtKotlinPropertySymbol:
|
||||
callableIdIfNonLocal: test/InterfaceWithValBase.noGenerics_InterfaceWithValBase
|
||||
@@ -26,12 +26,12 @@ KtKotlinPropertySymbol:
|
||||
KtKotlinPropertySymbol:
|
||||
callableIdIfNonLocal: test/InterfaceWithVal.withOuterGenericT1_InterfaceWithValBase
|
||||
name: withOuterGenericT1_InterfaceWithValBase
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtKotlinPropertySymbol:
|
||||
callableIdIfNonLocal: test/ClassWithInterfaceWithVal.withOuterGenericT2_InterfaceWithValBase
|
||||
name: withOuterGenericT2_InterfaceWithValBase
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtKotlinPropertySymbol:
|
||||
callableIdIfNonLocal: test/InterfaceWithValBase.withOwnGeneric_InterfaceWithValBase
|
||||
@@ -41,12 +41,12 @@ KtKotlinPropertySymbol:
|
||||
KtKotlinPropertySymbol:
|
||||
callableIdIfNonLocal: test/InterfaceWithVal.withOwnAndOuterGenericT1_InterfaceWithValBase
|
||||
name: withOwnAndOuterGenericT1_InterfaceWithValBase
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtKotlinPropertySymbol:
|
||||
callableIdIfNonLocal: test/ClassWithInterfaceWithVal.withOwnAndOuterGenericT2_InterfaceWithValBase
|
||||
name: withOwnAndOuterGenericT2_InterfaceWithValBase
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: kotlin/Any.equals
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ KtFunctionSymbol:
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: null
|
||||
name: withOuterAndOwn
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: kotlin/Any.equals
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ KtFunctionSymbol:
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: test/TopLevel.Child.withOwnAndOuter
|
||||
name: withOwnAndOuter
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: kotlin/Any.equals
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ KtFunctionSymbol:
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: test/OtherTopLevel.Child.withOuter
|
||||
name: withOuter
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: kotlin/Any.equals
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ KtFunctionSymbol:
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: test/OtherTopLevel.Child.withOuter
|
||||
name: withOuter
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: kotlin/Any.equals
|
||||
|
||||
+2
-2
@@ -6,12 +6,12 @@ KtFunctionSymbol:
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: test/OtherTopLevel.Child.withOuter
|
||||
name: withOuter
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: test/OtherTopLevel.Child.withOwnAndOuter
|
||||
name: withOwnAndOuter
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: kotlin/Any.equals
|
||||
|
||||
+3
-3
@@ -16,7 +16,7 @@ KtFunctionSymbol:
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: test/MyList.iterator
|
||||
name: iterator
|
||||
origin: JAVA
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: java/util/Collection.toArray
|
||||
@@ -31,7 +31,7 @@ KtFunctionSymbol:
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: test/MyList.add
|
||||
name: add
|
||||
origin: JAVA
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: java/util/Collection.remove
|
||||
@@ -46,7 +46,7 @@ KtFunctionSymbol:
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: test/MyList.addAll
|
||||
name: addAll
|
||||
origin: JAVA
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: java/util/Collection.removeAll
|
||||
|
||||
+2
-2
@@ -1,12 +1,12 @@
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: test/MyClass.funWithOuterAndOwnGenericsAndBounds
|
||||
name: funWithOuterAndOwnGenericsAndBounds
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtKotlinPropertySymbol:
|
||||
callableIdIfNonLocal: test/MyClass.propWithOuterAndOwnGenericsAndBounds
|
||||
name: propWithOuterAndOwnGenericsAndBounds
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: kotlin/Any.equals
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ KtKotlinPropertySymbol:
|
||||
KtKotlinPropertySymbol:
|
||||
callableIdIfNonLocal: test/Inheritor.withOwnAndOuterGenericAsTypeBound_InterfaceWithValBase
|
||||
name: withOwnAndOuterGenericAsTypeBound_InterfaceWithValBase
|
||||
origin: SOURCE
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
|
||||
KtFunctionSymbol:
|
||||
callableIdIfNonLocal: kotlin/Any.equals
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ KtConstructorSymbol:
|
||||
hasStableParameterNames: false
|
||||
isExtension: false
|
||||
isPrimary: false
|
||||
origin: JAVA
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
receiverType: null
|
||||
returnType: java/util/ArrayList<E>
|
||||
symbolKind: CLASS_MEMBER
|
||||
|
||||
Reference in New Issue
Block a user