psi2ir: fix unsubstituted type parameters around SAM conversions

Preserve type substitution:
- when obtaining function type for SAM type;
- when generating SAM conversions for SAM adapter arguments;
- for "original" method corresponding to a SAM adapter.
This commit is contained in:
Dmitry Petrov
2019-08-13 12:23:15 +03:00
parent 6b208f7c9c
commit 986654b709
20 changed files with 658 additions and 47 deletions
@@ -1367,11 +1367,31 @@ public class IrTextTestCaseGenerated extends AbstractIrTextTestCase {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/ir/irText/expressions/sam"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("samByProjectedType.kt")
public void testSamByProjectedType() throws Exception {
runTest("compiler/testData/ir/irText/expressions/sam/samByProjectedType.kt");
}
@TestMetadata("samConstructors.kt")
public void testSamConstructors() throws Exception {
runTest("compiler/testData/ir/irText/expressions/sam/samConstructors.kt");
}
@TestMetadata("samConversionInGenericConstructorCall.kt")
public void testSamConversionInGenericConstructorCall() throws Exception {
runTest("compiler/testData/ir/irText/expressions/sam/samConversionInGenericConstructorCall.kt");
}
@TestMetadata("samConversionInGenericConstructorCall_NI.kt")
public void testSamConversionInGenericConstructorCall_NI() throws Exception {
runTest("compiler/testData/ir/irText/expressions/sam/samConversionInGenericConstructorCall_NI.kt");
}
@TestMetadata("samConversionToGeneric.kt")
public void testSamConversionToGeneric() throws Exception {
runTest("compiler/testData/ir/irText/expressions/sam/samConversionToGeneric.kt");
}
@TestMetadata("samConversions.kt")
public void testSamConversions() throws Exception {
runTest("compiler/testData/ir/irText/expressions/sam/samConversions.kt");