bug fixed: analyze arguments in FREE expression position

This commit is contained in:
Svetlana Isakova
2013-09-03 19:56:20 +04:00
parent b5e6568726
commit a53eae79b5
3 changed files with 29 additions and 3 deletions
@@ -180,8 +180,8 @@ public class ArgumentTypeResolver {
if (recordedTypeInfo != null) {
return recordedTypeInfo;
}
ResolutionContext newContext = context.replaceExpectedType(TypeUtils.NO_EXPECTED_TYPE).replaceContextDependency(
ContextDependency.DEPENDENT);
ResolutionContext newContext = context.replaceExpectedType(TypeUtils.NO_EXPECTED_TYPE)
.replaceContextDependency(ContextDependency.DEPENDENT).replaceExpressionPosition(ExpressionPosition.FREE);
return expressionTypingServices.getTypeInfo(expression, newContext);
}
@@ -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")
@InnerTestClasses({Resolve.Invoke.class, Resolve.SpecialConstructions.class})
@InnerTestClasses({Resolve.Invoke.class, Resolve.NestedCalls.class, Resolve.SpecialConstructions.class})
public static class Resolve extends AbstractDiagnosticsTestWithEagerResolve {
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);
@@ -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")
public static class SpecialConstructions extends AbstractDiagnosticsTestWithEagerResolve {
public void testAllFilesPresentInSpecialConstructions() throws Exception {
@@ -4844,6 +4857,7 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
TestSuite suite = new TestSuite("Resolve");
suite.addTestSuite(Resolve.class);
suite.addTestSuite(Invoke.class);
suite.addTestSuite(NestedCalls.class);
suite.addTestSuite(SpecialConstructions.class);
return suite;
}