FIR IDE: introduce delegated symbol origin
This commit is contained in:
@@ -55,4 +55,15 @@ enum class KtSymbolOrigin {
|
||||
* The intersection of functions A.foo & B.foo will create a function C.foo which will be marked with [INTERSECTION_OVERRIDE]
|
||||
*/
|
||||
INTERSECTION_OVERRIDE,
|
||||
|
||||
/**
|
||||
* Member symbol which was generated by compiler when using `by` interface delegation
|
||||
* e.g,
|
||||
* ```
|
||||
* interface A { fun x() }
|
||||
* class B(a: A) : A by a
|
||||
* ```
|
||||
* the `B.foo` function will be generated by Kotlin compiler
|
||||
*/
|
||||
DELEGATED,
|
||||
}
|
||||
+1
@@ -28,6 +28,7 @@ internal class KtFirSymbolContainingDeclarationProvider(
|
||||
KtSymbolOrigin.LIBRARY, KtSymbolOrigin.JAVA -> getContainingDeclarationForLibrarySymbol(symbol)
|
||||
KtSymbolOrigin.INTERSECTION_OVERRIDE -> TODO()
|
||||
KtSymbolOrigin.SAM_CONSTRUCTOR -> TODO()
|
||||
KtSymbolOrigin.DELEGATED -> TODO()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
@@ -36,6 +36,7 @@ private tailrec fun FirDeclaration.ktSymbolOrigin(): KtSymbolOrigin = when (orig
|
||||
FirDeclarationOrigin.SamConstructor -> KtSymbolOrigin.SAM_CONSTRUCTOR
|
||||
FirDeclarationOrigin.Enhancement -> KtSymbolOrigin.JAVA
|
||||
FirDeclarationOrigin.IntersectionOverride -> KtSymbolOrigin.INTERSECTION_OVERRIDE
|
||||
FirDeclarationOrigin.Delegated -> KtSymbolOrigin.DELEGATED
|
||||
else -> {
|
||||
val overridden = (this as? FirCallableDeclaration<*>)?.originalIfFakeOverride()
|
||||
?: throw InvalidFirDeclarationOriginForSymbol(this)
|
||||
|
||||
Reference in New Issue
Block a user