[NI] Fix input/output types for callable reference atom

Input and output types are crucial for type variable fixation order and
 analysis of postponed arguments (callable references, lambdas).

 Specifically, if there is non-fixed type variable inside input types of
 a callable reference, then we'll postpone resolution for such callable
 reference.

 Initial example with the expected type `KMutableProperty1<*, F>` caused
 problems because input types were computed incorrectly (while there
 aren't input types here)

 #KT-25431 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2018-12-05 12:44:09 +03:00
parent 6ebbb6eae3
commit e8a8318ead
10 changed files with 139 additions and 35 deletions
@@ -1681,6 +1681,11 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest {
runTest("compiler/testData/diagnostics/tests/callableReference/sam.kt");
}
@TestMetadata("subtypeArgumentFromRHSForReference.kt")
public void testSubtypeArgumentFromRHSForReference() throws Exception {
runTest("compiler/testData/diagnostics/tests/callableReference/subtypeArgumentFromRHSForReference.kt");
}
@TestMetadata("unused.kt")
public void testUnused() throws Exception {
runTest("compiler/testData/diagnostics/tests/callableReference/unused.kt");
@@ -1681,6 +1681,11 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing
runTest("compiler/testData/diagnostics/tests/callableReference/sam.kt");
}
@TestMetadata("subtypeArgumentFromRHSForReference.kt")
public void testSubtypeArgumentFromRHSForReference() throws Exception {
runTest("compiler/testData/diagnostics/tests/callableReference/subtypeArgumentFromRHSForReference.kt");
}
@TestMetadata("unused.kt")
public void testUnused() throws Exception {
runTest("compiler/testData/diagnostics/tests/callableReference/unused.kt");