[FIR IDE] Add unwrapping substitution overrides which doesn't affect function's signature

Also, do not use PSI to restore SUBSTITUTION_OVERRIDE function/property
symbols
This commit is contained in:
Roman Golyshev
2021-10-28 13:16:33 +03:00
committed by teamcityserver
parent 2766dc938b
commit fa8bb47bdf
51 changed files with 1291 additions and 33 deletions
@@ -0,0 +1,14 @@
// DO_NOT_CHECK_SYMBOL_RESTORE
package test
class SomeClass
fun <Outer> topLevel() {
open class Base {
fun withOuter(): Outer? = null
}
class Child : Base() {}
Child().<caret>withOuter()
}
@@ -0,0 +1,23 @@
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: null
hasStableParameterNames: true
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: withOuter
origin: SOURCE
receiverType: null
returnType: Outer?
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): test/Base<Outer>
deprecationStatus: null
@@ -0,0 +1,23 @@
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: test/TopLevel.Child.withOuter
hasStableParameterNames: true
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: withOuter
origin: SOURCE
receiverType: null
returnType: Outer?
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): test/TopLevel<Outer>.test/TopLevel.Base<test/SomeClass>
deprecationStatus: null
@@ -0,0 +1,16 @@
// DO_NOT_CHECK_SYMBOL_RESTORE
package test
class SomeClass
class TopLevel<Outer> {
inner open class Base<T> {
fun withOuter(): Outer? = null
}
inner class Child : Base<SomeClass> {}
fun usage() {
Child().<caret>withOuter()
}
}
@@ -0,0 +1,23 @@
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: test/TopLevel.Base.withOuter
hasStableParameterNames: true
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: withOuter
origin: SOURCE
receiverType: null
returnType: Outer?
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): test/TopLevel.Base<T, Outer>
deprecationStatus: null