[FIR] Transform explicit receiver of QAE properly
This commit is contained in:
committed by
Mikhail Glukhikh
parent
27a1ec3817
commit
f7b6fec70c
+2
-2
@@ -246,11 +246,11 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn
|
|||||||
private fun <T : FirQualifiedAccess> transformCallee(qualifiedAccess: T): T {
|
private fun <T : FirQualifiedAccess> transformCallee(qualifiedAccess: T): T {
|
||||||
val callee = qualifiedAccess.calleeReference as? FirSimpleNamedReference ?: return qualifiedAccess
|
val callee = qualifiedAccess.calleeReference as? FirSimpleNamedReference ?: return qualifiedAccess
|
||||||
|
|
||||||
val receiver = qualifiedAccess.explicitReceiver?.transformSingle(this, noExpectedType)
|
val qualifiedAccess = qualifiedAccess.transformExplicitReceiver(this, noExpectedType)
|
||||||
|
|
||||||
val info = CallInfo(
|
val info = CallInfo(
|
||||||
CallKind.VariableAccess,
|
CallKind.VariableAccess,
|
||||||
receiver,
|
qualifiedAccess.explicitReceiver,
|
||||||
emptyList(),
|
emptyList(),
|
||||||
qualifiedAccess.safe,
|
qualifiedAccess.safe,
|
||||||
emptyList(),
|
emptyList(),
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ FILE fqName:<root> fileName:/boundCallableReferences.kt
|
|||||||
FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.Int visibility:public [final,static]
|
FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.Int visibility:public [final,static]
|
||||||
EXPRESSION_BODY
|
EXPRESSION_BODY
|
||||||
CALL 'public final fun <get-bar> (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=null
|
CALL 'public final fun <get-bar> (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=null
|
||||||
$this: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.A' type=IrErrorType origin=null
|
$this: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.A' type=<root>.A origin=null
|
||||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:kotlin.Int
|
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:kotlin.Int
|
||||||
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val]
|
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val]
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ FILE fqName:<root> fileName:/callableRefToGenericMember.kt
|
|||||||
FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.Int visibility:public [final,static]
|
FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.Int visibility:public [final,static]
|
||||||
EXPRESSION_BODY
|
EXPRESSION_BODY
|
||||||
CALL 'public final fun <get-bar> (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=null
|
CALL 'public final fun <get-bar> (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=null
|
||||||
$this: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.A' type=IrErrorType origin=null
|
$this: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.A' type=<root>.A<kotlin.String> origin=null
|
||||||
<class: T>: <none>
|
<class: T>: <none>
|
||||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:kotlin.Int
|
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:kotlin.Int
|
||||||
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val]
|
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val]
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ FILE fqName:<root> fileName:/localVariableOfIntersectionType.kt
|
|||||||
ERROR_CALL 'Unresolved reference: <Unresolved name: bar>#' type=IrErrorType
|
ERROR_CALL 'Unresolved reference: <Unresolved name: bar>#' type=IrErrorType
|
||||||
VAR name:t type:T of <root>.Inv [val]
|
VAR name:t type:T of <root>.Inv [val]
|
||||||
CALL 'public abstract fun <get-t> (): T of <root>.Inv declared in <root>.Inv' type=T of <root>.Inv origin=null
|
CALL 'public abstract fun <get-t> (): T of <root>.Inv declared in <root>.Inv' type=T of <root>.Inv origin=null
|
||||||
$this: CALL 'public abstract fun create <T> (x: <root>.In<T of <root>.Z.create>, y: <root>.In<T of <root>.Z.create>): <root>.Inv<T of <root>.Z.create> declared in <root>.Z' type=IrErrorType origin=null
|
$this: CALL 'public abstract fun create <T> (x: <root>.In<T of <root>.Z.create>, y: <root>.In<T of <root>.Z.create>): <root>.Inv<T of <root>.Z.create> declared in <root>.Z' type=<root>.Inv<<root>.IA> origin=null
|
||||||
<T>: <none>
|
<T>: <none>
|
||||||
$this: GET_VAR 'z: <root>.Z declared in <root>.test' type=<root>.Z origin=null
|
$this: GET_VAR 'z: <root>.Z declared in <root>.test' type=<root>.Z origin=null
|
||||||
x: GET_VAR 'a: <root>.In<<root>.IA> declared in <root>.test' type=<root>.In<<root>.IA> origin=null
|
x: GET_VAR 'a: <root>.In<<root>.IA> declared in <root>.test' type=<root>.In<<root>.IA> origin=null
|
||||||
|
|||||||
Reference in New Issue
Block a user