Added platform static checker with provider implementation

This commit is contained in:
Michael Bogdanov
2014-09-15 14:38:29 +04:00
parent 9b065a89b9
commit b763aa9995
36 changed files with 443 additions and 52 deletions
@@ -41,7 +41,7 @@ public class JetDiagnosticsTestWithStdLibGenerated extends AbstractJetDiagnostic
@TestMetadata("compiler/testData/diagnostics/testsWithStdLib/annotations")
@TestDataPath("$PROJECT_ROOT")
@InnerTestClasses({Annotations.AnnotationApplicability.class, Annotations.AnnotationParameterMustBeConstant.class})
@InnerTestClasses({Annotations.AnnotationApplicability.class, Annotations.AnnotationParameterMustBeConstant.class, Annotations.PlatformStatic.class})
@RunWith(org.jetbrains.jet.JUnit3RunnerWithInners.class)
public static class Annotations extends AbstractJetDiagnosticsTestWithStdLib {
public void testAllFilesPresentInAnnotations() throws Exception {
@@ -110,6 +110,28 @@ public class JetDiagnosticsTestWithStdLibGenerated extends AbstractJetDiagnostic
}
@TestMetadata("compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic")
@TestDataPath("$PROJECT_ROOT")
@RunWith(org.jetbrains.jet.JUnit3RunnerWithInners.class)
public static class PlatformStatic extends AbstractJetDiagnosticsTestWithStdLib {
public void testAllFilesPresentInPlatformStatic() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("functions.kt")
public void testFunctions() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/functions.kt");
doTest(fileName);
}
@TestMetadata("property.kt")
public void testProperty() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithStdLib/annotations/platformStatic/property.kt");
doTest(fileName);
}
}
}
@TestMetadata("compiler/testData/diagnostics/testsWithStdLib/callableReference")
@@ -25,6 +25,7 @@ import org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils;
import org.jetbrains.jet.lang.resolve.TypeResolver;
import org.jetbrains.jet.context.GlobalContext;
import org.jetbrains.jet.storage.StorageManager;
import org.jetbrains.jet.lang.resolve.AdditionalCheckerProvider;
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
@@ -54,6 +55,7 @@ public class InjectorForTests {
private final TypeResolver typeResolver;
private final GlobalContext globalContext;
private final StorageManager storageManager;
private final AdditionalCheckerProvider additionalCheckerProvider;
private final AnnotationResolver annotationResolver;
private final CallResolver callResolver;
private final ArgumentTypeResolver argumentTypeResolver;
@@ -83,6 +85,7 @@ public class InjectorForTests {
this.typeResolver = new TypeResolver();
this.globalContext = org.jetbrains.jet.context.ContextPackage.GlobalContext();
this.storageManager = globalContext.getStorageManager();
this.additionalCheckerProvider = org.jetbrains.jet.lang.resolve.kotlin.JavaDeclarationCheckerProvider.INSTANCE$;
this.annotationResolver = new AnnotationResolver();
this.argumentTypeResolver = new ArgumentTypeResolver();
this.candidateResolver = new CandidateResolver();
@@ -131,6 +134,7 @@ public class InjectorForTests {
delegatedPropertyResolver.setCallResolver(callResolver);
delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider);
expressionTypingComponents.setCallResolver(callResolver);
expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils);
expressionTypingComponents.setExpressionTypingServices(expressionTypingServices);
@@ -33,6 +33,7 @@ import org.jetbrains.jet.lang.descriptors.impl.ModuleDescriptorImpl;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.BindingTraceContext;
import org.jetbrains.jet.lang.resolve.java.TopDownAnalyzerFacadeForJVM;
import org.jetbrains.jet.lang.resolve.kotlin.JavaDeclarationCheckerProvider;
import org.jetbrains.jet.lang.resolve.lazy.declarations.FileBasedDeclarationProviderFactory;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
@@ -70,7 +71,8 @@ public abstract class AbstractLazyResolveDescriptorRendererTest extends KotlinTe
final ResolveSession resolveSession = new InjectorForLazyResolve(
getProject(), globalContext, lazyModule,
new FileBasedDeclarationProviderFactory(globalContext.getStorageManager(), files),
new BindingTraceContext()).getResolveSession();
new BindingTraceContext(),
JavaDeclarationCheckerProvider.INSTANCE$).getResolveSession();
lazyModule.initialize(resolveSession.getPackageFragmentProvider());
final List<DeclarationDescriptor> descriptors = new ArrayList<DeclarationDescriptor>();