Passing DataFlowInfo to local classes/objects

#KT-2835 In Progress
#KT-2225 In Progress
#KT-338 In Progress
This commit is contained in:
Andrey Breslav
2013-08-19 17:34:46 +04:00
parent c95f2b78c8
commit 63c284e200
15 changed files with 185 additions and 35 deletions
@@ -1439,6 +1439,7 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
}
@TestMetadata("compiler/testData/diagnostics/tests/dataFlow")
@InnerTestClasses({DataFlow.Local.class})
public static class DataFlow extends AbstractDiagnosticsTestWithEagerResolve {
public void testAllFilesPresentInDataFlow() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/diagnostics/tests/dataFlow"), Pattern.compile("^(.+)\\.kt$"), true);
@@ -1459,6 +1460,40 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
doTest("compiler/testData/diagnostics/tests/dataFlow/WhenSubject.kt");
}
@TestMetadata("compiler/testData/diagnostics/tests/dataFlow/local")
public static class Local extends AbstractDiagnosticsTestWithEagerResolve {
public void testAllFilesPresentInLocal() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/diagnostics/tests/dataFlow/local"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("kt2835.kt")
public void testKt2835() throws Exception {
doTest("compiler/testData/diagnostics/tests/dataFlow/local/kt2835.kt");
}
@TestMetadata("LocalClass.kt")
public void testLocalClass() throws Exception {
doTest("compiler/testData/diagnostics/tests/dataFlow/local/LocalClass.kt");
}
@TestMetadata("LocalObject.kt")
public void testLocalObject() throws Exception {
doTest("compiler/testData/diagnostics/tests/dataFlow/local/LocalObject.kt");
}
@TestMetadata("LocalObjectDelegation.kt")
public void testLocalObjectDelegation() throws Exception {
doTest("compiler/testData/diagnostics/tests/dataFlow/local/LocalObjectDelegation.kt");
}
}
public static Test innerSuite() {
TestSuite suite = new TestSuite("DataFlow");
suite.addTestSuite(DataFlow.class);
suite.addTestSuite(Local.class);
return suite;
}
}
@TestMetadata("compiler/testData/diagnostics/tests/dataFlowInfoTraversal")
@@ -5122,7 +5157,7 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
suite.addTestSuite(ControlFlowAnalysis.class);
suite.addTestSuite(ControlStructures.class);
suite.addTestSuite(DataClasses.class);
suite.addTestSuite(DataFlow.class);
suite.addTest(DataFlow.innerSuite());
suite.addTestSuite(DataFlowInfoTraversal.class);
suite.addTest(DeclarationChecks.innerSuite());
suite.addTest(DelegatedProperty.innerSuite());
@@ -28,6 +28,7 @@ import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo;
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
@@ -112,7 +113,9 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture {
List<JetDeclaration> declarations = aClass.getDeclarations();
JetNamedFunction function = (JetNamedFunction) declarations.get(0);
SimpleFunctionDescriptor functionDescriptor = descriptorResolver.resolveFunctionDescriptor(classDescriptor, scope, function, JetTestUtils.DUMMY_TRACE);
SimpleFunctionDescriptor functionDescriptor = descriptorResolver.resolveFunctionDescriptor(classDescriptor, scope, function,
JetTestUtils.DUMMY_TRACE,
DataFlowInfo.EMPTY);
assertEquals(expectedFunctionModality, functionDescriptor.getModality());
}
@@ -28,6 +28,7 @@ import org.jetbrains.jet.lang.psi.JetNamedFunction;
import org.jetbrains.jet.lang.psi.JetPsiFactory;
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
import org.jetbrains.jet.lang.resolve.OverloadUtil;
import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
public class JetOverloadTest extends JetLiteFixture {
@@ -181,6 +182,7 @@ public class JetOverloadTest extends JetLiteFixture {
private FunctionDescriptor makeFunction(String funDecl) {
JetNamedFunction function = JetPsiFactory.createFunction(getProject(), funDecl);
return descriptorResolver.resolveFunctionDescriptor(root, builtIns.getBuiltInsScope(), function, JetTestUtils.DUMMY_TRACE);
return descriptorResolver.resolveFunctionDescriptor(root, builtIns.getBuiltInsScope(), function,
JetTestUtils.DUMMY_TRACE, DataFlowInfo.EMPTY);
}
}
@@ -28,6 +28,7 @@ import org.jetbrains.jet.lang.psi.JetNamedFunction;
import org.jetbrains.jet.lang.psi.JetPsiFactory;
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
import org.jetbrains.jet.lang.resolve.OverridingUtil;
import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
public class JetOverridingTest extends JetLiteFixture {
@@ -171,6 +172,7 @@ public class JetOverridingTest extends JetLiteFixture {
private FunctionDescriptor makeFunction(String funDecl) {
JetNamedFunction function = JetPsiFactory.createFunction(getProject(), funDecl);
return descriptorResolver.resolveFunctionDescriptor(root, builtIns.getBuiltInsScope(), function, JetTestUtils.DUMMY_TRACE);
return descriptorResolver.resolveFunctionDescriptor(root, builtIns.getBuiltInsScope(), function,
JetTestUtils.DUMMY_TRACE, DataFlowInfo.EMPTY);
}
}