DataFlowInfo taken into account when resolving component functions
This commit is contained in:
+1
-1
@@ -253,7 +253,7 @@ public class ExpressionTypingUtils {
|
|||||||
@NotNull Name name
|
@NotNull Name name
|
||||||
) {
|
) {
|
||||||
JetReferenceExpression fake = JetPsiFactory.createSimpleName(context.expressionTypingServices.getProject(), "fake");
|
JetReferenceExpression fake = JetPsiFactory.createSimpleName(context.expressionTypingServices.getProject(), "fake");
|
||||||
BindingTrace fakeTrace = new BindingTraceContext();
|
BindingTrace fakeTrace = TemporaryBindingTrace.create(context.trace);
|
||||||
Call call = CallMaker.makeCall(fake, receiver, null, fake, Collections.<ValueArgument>emptyList());
|
Call call = CallMaker.makeCall(fake, receiver, null, fake, Collections.<ValueArgument>emptyList());
|
||||||
return context.replaceBindingTrace(fakeTrace).resolveCallWithGivenName(call, fake, name);
|
return context.replaceBindingTrace(fakeTrace).resolveCallWithGivenName(call, fake, name);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
class A {
|
||||||
|
fun component1() : Int = 1
|
||||||
|
fun component2() : Int = 2
|
||||||
|
}
|
||||||
|
|
||||||
|
fun a(aa : A?, b : Any) {
|
||||||
|
if (aa != null) {
|
||||||
|
val (a1, b1) = aa;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (b is A) {
|
||||||
|
val (a1, b1) = b;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1053,6 +1053,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
|
|||||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.checkers.AbstractDiagnosticsTestWithEagerResolve", new File("compiler/testData/diagnostics/tests/declarationChecks"), "kt", false);
|
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.checkers.AbstractDiagnosticsTestWithEagerResolve", new File("compiler/testData/diagnostics/tests/declarationChecks"), "kt", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("DataFlowInfoInMultiDecl.kt")
|
||||||
|
public void testDataFlowInfoInMultiDecl() throws Exception {
|
||||||
|
doTest("compiler/testData/diagnostics/tests/declarationChecks/DataFlowInfoInMultiDecl.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("kt1141.kt")
|
@TestMetadata("kt1141.kt")
|
||||||
public void testKt1141() throws Exception {
|
public void testKt1141() throws Exception {
|
||||||
doTest("compiler/testData/diagnostics/tests/declarationChecks/kt1141.kt");
|
doTest("compiler/testData/diagnostics/tests/declarationChecks/kt1141.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user