Resolve function references independently of target type
KT-7564 AbstractDiagnosticsTest.checkAllResolvedCallsAreCompleted() fails on tests with function references #KT-7564 Fixed
This commit is contained in:
+2
-1
@@ -619,7 +619,8 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
|
|||||||
JetSimpleNameExpression reference = expression.getCallableReference();
|
JetSimpleNameExpression reference = expression.getCallableReference();
|
||||||
|
|
||||||
boolean[] result = new boolean[1];
|
boolean[] result = new boolean[1];
|
||||||
CallableDescriptor descriptor = resolveCallableReferenceTarget(lhsType, context, expression, result);
|
CallableDescriptor descriptor = resolveCallableReferenceTarget(
|
||||||
|
lhsType, context.replaceContextDependency(INDEPENDENT), expression, result);
|
||||||
|
|
||||||
if (!result[0]) {
|
if (!result[0]) {
|
||||||
context.trace.report(UNRESOLVED_REFERENCE.on(reference, reference));
|
context.trace.report(UNRESOLVED_REFERENCE.on(reference, reference));
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
import kotlin.reflect.*
|
||||||
|
|
||||||
|
fun <T> checkSubtype(t: T) = t
|
||||||
|
|
||||||
|
class A(var g: A) {
|
||||||
|
val f: Int = 0
|
||||||
|
|
||||||
|
fun test() {
|
||||||
|
checkSubtype<KMemberProperty<A, Int>>(::f)
|
||||||
|
checkSubtype<KMutableMemberProperty<A, A>>(::g)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package
|
||||||
|
|
||||||
|
internal fun </*0*/ T> checkSubtype(/*0*/ t: T): T
|
||||||
|
|
||||||
|
internal final class A {
|
||||||
|
public constructor A(/*0*/ g: A)
|
||||||
|
internal final val f: kotlin.Int = 0
|
||||||
|
internal final var g: A
|
||||||
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
|
internal final fun test(): kotlin.Unit
|
||||||
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||||
|
}
|
||||||
+6
@@ -909,6 +909,12 @@ public class JetDiagnosticsTestWithStdLibGenerated extends AbstractJetDiagnostic
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("kt7564.kt")
|
||||||
|
public void testKt7564() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithStdLib/callableReference/property/kt7564.kt");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("localVariable.kt")
|
@TestMetadata("localVariable.kt")
|
||||||
public void testLocalVariable() throws Exception {
|
public void testLocalVariable() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithStdLib/callableReference/property/localVariable.kt");
|
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithStdLib/callableReference/property/localVariable.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user