bug fixed: analyze arguments in FREE expression position
This commit is contained in:
+2
-2
@@ -180,8 +180,8 @@ public class ArgumentTypeResolver {
|
|||||||
if (recordedTypeInfo != null) {
|
if (recordedTypeInfo != null) {
|
||||||
return recordedTypeInfo;
|
return recordedTypeInfo;
|
||||||
}
|
}
|
||||||
ResolutionContext newContext = context.replaceExpectedType(TypeUtils.NO_EXPECTED_TYPE).replaceContextDependency(
|
ResolutionContext newContext = context.replaceExpectedType(TypeUtils.NO_EXPECTED_TYPE)
|
||||||
ContextDependency.DEPENDENT);
|
.replaceContextDependency(ContextDependency.DEPENDENT).replaceExpressionPosition(ExpressionPosition.FREE);
|
||||||
|
|
||||||
return expressionTypingServices.getTypeInfo(expression, newContext);
|
return expressionTypingServices.getTypeInfo(expression, newContext);
|
||||||
}
|
}
|
||||||
|
|||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
class A {
|
||||||
|
class object {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun use(vararg a: Any?) = a
|
||||||
|
|
||||||
|
fun test() {
|
||||||
|
use(use(A, null).toString())
|
||||||
|
}
|
||||||
|
|
||||||
@@ -4748,7 +4748,7 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
|
|||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/testData/diagnostics/tests/resolve")
|
@TestMetadata("compiler/testData/diagnostics/tests/resolve")
|
||||||
@InnerTestClasses({Resolve.Invoke.class, Resolve.SpecialConstructions.class})
|
@InnerTestClasses({Resolve.Invoke.class, Resolve.NestedCalls.class, Resolve.SpecialConstructions.class})
|
||||||
public static class Resolve extends AbstractDiagnosticsTestWithEagerResolve {
|
public static class Resolve extends AbstractDiagnosticsTestWithEagerResolve {
|
||||||
public void testAllFilesPresentInResolve() throws Exception {
|
public void testAllFilesPresentInResolve() throws Exception {
|
||||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/diagnostics/tests/resolve"), Pattern.compile("^(.+)\\.kt$"), true);
|
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/diagnostics/tests/resolve"), Pattern.compile("^(.+)\\.kt$"), true);
|
||||||
@@ -4817,6 +4817,19 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/testData/diagnostics/tests/resolve/nestedCalls")
|
||||||
|
public static class NestedCalls extends AbstractDiagnosticsTestWithEagerResolve {
|
||||||
|
public void testAllFilesPresentInNestedCalls() throws Exception {
|
||||||
|
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/diagnostics/tests/resolve/nestedCalls"), Pattern.compile("^(.+)\\.kt$"), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("analyzeArgsInFreeExpressionPosition.kt")
|
||||||
|
public void testAnalyzeArgsInFreeExpressionPosition() throws Exception {
|
||||||
|
doTest("compiler/testData/diagnostics/tests/resolve/nestedCalls/analyzeArgsInFreeExpressionPosition.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/testData/diagnostics/tests/resolve/specialConstructions")
|
@TestMetadata("compiler/testData/diagnostics/tests/resolve/specialConstructions")
|
||||||
public static class SpecialConstructions extends AbstractDiagnosticsTestWithEagerResolve {
|
public static class SpecialConstructions extends AbstractDiagnosticsTestWithEagerResolve {
|
||||||
public void testAllFilesPresentInSpecialConstructions() throws Exception {
|
public void testAllFilesPresentInSpecialConstructions() throws Exception {
|
||||||
@@ -4844,6 +4857,7 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
|
|||||||
TestSuite suite = new TestSuite("Resolve");
|
TestSuite suite = new TestSuite("Resolve");
|
||||||
suite.addTestSuite(Resolve.class);
|
suite.addTestSuite(Resolve.class);
|
||||||
suite.addTestSuite(Invoke.class);
|
suite.addTestSuite(Invoke.class);
|
||||||
|
suite.addTestSuite(NestedCalls.class);
|
||||||
suite.addTestSuite(SpecialConstructions.class);
|
suite.addTestSuite(SpecialConstructions.class);
|
||||||
return suite;
|
return suite;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user