[FIR2IR] Unwrap typealiases during applying of suspend conversion
^KT-65002 Fixed
This commit is contained in:
committed by
Space Team
parent
83ddf904aa
commit
9857bdc891
+2
-1
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.fir.render
|
||||
import org.jetbrains.kotlin.fir.resolve.FirSamResolver
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.FirFakeArgumentForCallableReference
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.ResolvedCallArgument
|
||||
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
|
||||
import org.jetbrains.kotlin.fir.resolve.substitution.AbstractConeSubstitutor
|
||||
import org.jetbrains.kotlin.fir.resolve.toFirRegularClassSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.ConeTypeParameterLookupTag
|
||||
@@ -603,7 +604,7 @@ internal class AdapterGenerator(
|
||||
expectedFunctionalType: ConeClassLikeType,
|
||||
argument: FirExpression
|
||||
): IrSimpleFunctionSymbol? {
|
||||
val argumentType = ((argument as? FirSamConversionExpression)?.expression ?: argument).resolvedType
|
||||
val argumentType = ((argument as? FirSamConversionExpression)?.expression ?: argument).resolvedType.fullyExpandedType(session)
|
||||
val argumentTypeWithInvoke = argumentType.findSubtypeOfBasicFunctionType(session, expectedFunctionalType) ?: return null
|
||||
|
||||
return if (argumentTypeWithInvoke.isSomeFunctionType(session)) {
|
||||
|
||||
+6
@@ -52915,6 +52915,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr
|
||||
runTest("compiler/testData/codegen/box/suspendConversion/suspendConversionCompatibility.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("suspendConversionOfAliasedType.kt")
|
||||
public void testSuspendConversionOfAliasedType() {
|
||||
runTest("compiler/testData/codegen/box/suspendConversion/suspendConversionOfAliasedType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("suspendConversionOnVarargElements.kt")
|
||||
public void testSuspendConversionOnVarargElements() {
|
||||
|
||||
+6
@@ -52915,6 +52915,12 @@ public class FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated
|
||||
runTest("compiler/testData/codegen/box/suspendConversion/suspendConversionCompatibility.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("suspendConversionOfAliasedType.kt")
|
||||
public void testSuspendConversionOfAliasedType() {
|
||||
runTest("compiler/testData/codegen/box/suspendConversion/suspendConversionOfAliasedType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("suspendConversionOnVarargElements.kt")
|
||||
public void testSuspendConversionOnVarargElements() {
|
||||
|
||||
+6
@@ -52973,6 +52973,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo
|
||||
runTest("compiler/testData/codegen/box/suspendConversion/suspendConversionCompatibility.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("suspendConversionOfAliasedType.kt")
|
||||
public void testSuspendConversionOfAliasedType() {
|
||||
runTest("compiler/testData/codegen/box/suspendConversion/suspendConversionOfAliasedType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("suspendConversionOnVarargElements.kt")
|
||||
public void testSuspendConversionOnVarargElements() {
|
||||
|
||||
Reference in New Issue
Block a user