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();
|
||||
|
||||
boolean[] result = new boolean[1];
|
||||
CallableDescriptor descriptor = resolveCallableReferenceTarget(lhsType, context, expression, result);
|
||||
CallableDescriptor descriptor = resolveCallableReferenceTarget(
|
||||
lhsType, context.replaceContextDependency(INDEPENDENT), expression, result);
|
||||
|
||||
if (!result[0]) {
|
||||
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);
|
||||
}
|
||||
|
||||
@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")
|
||||
public void testLocalVariable() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithStdLib/callableReference/property/localVariable.kt");
|
||||
|
||||
Reference in New Issue
Block a user