Use ModuleDescriptor instead of ModuleConfiguration

This commit is contained in:
Andrey Breslav
2013-04-16 19:32:50 +04:00
parent e29418cde5
commit a72e49d8f7
48 changed files with 208 additions and 244 deletions
@@ -61,7 +61,6 @@ import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaFunctionResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaInnerClassResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver;
import org.jetbrains.jet.lang.ModuleConfiguration;
import org.jetbrains.annotations.NotNull;
import javax.annotation.PreDestroy;
@@ -78,7 +77,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
private final TopDownAnalysisParameters topDownAnalysisParameters;
private final BindingTrace bindingTrace;
private final ModuleDescriptorImpl moduleDescriptor;
private JavaBridgeConfiguration moduleConfiguration;
private JavaBridgeConfiguration javaBridgeConfiguration;
private JavaDescriptorResolver javaDescriptorResolver;
private PsiClassFinderImpl psiClassFinder;
private NamespaceFactoryImpl namespaceFactory;
@@ -130,7 +129,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
this.topDownAnalysisParameters = topDownAnalysisParameters;
this.bindingTrace = bindingTrace;
this.moduleDescriptor = moduleDescriptor;
this.moduleConfiguration = new JavaBridgeConfiguration();
this.javaBridgeConfiguration = new JavaBridgeConfiguration();
this.javaDescriptorResolver = new JavaDescriptorResolver();
this.psiClassFinder = new PsiClassFinderImpl();
this.namespaceFactory = new NamespaceFactoryImpl();
@@ -198,7 +197,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
this.descriptorResolver.setExpressionTypingServices(expressionTypingServices);
this.descriptorResolver.setTypeResolver(typeResolver);
this.moduleConfiguration.setJavaSemanticServices(javaSemanticServices);
this.javaBridgeConfiguration.setJavaSemanticServices(javaSemanticServices);
javaDescriptorResolver.setClassResolver(javaClassResolver);
javaDescriptorResolver.setConstructorResolver(javaConstructorResolver);
@@ -209,7 +208,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
psiClassFinder.setProject(project);
this.namespaceFactory.setConfiguration(moduleConfiguration);
this.namespaceFactory.setModuleDescriptor(moduleDescriptor);
this.namespaceFactory.setTrace(bindingTrace);
@@ -241,14 +239,14 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
typeResolver.setAnnotationResolver(annotationResolver);
typeResolver.setDescriptorResolver(descriptorResolver);
typeResolver.setModuleConfiguration(moduleConfiguration);
typeResolver.setModuleDescriptor(moduleDescriptor);
typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
importsResolver.setConfiguration(moduleConfiguration);
importsResolver.setContext(topDownAnalysisContext);
importsResolver.setImportsFactory(jetImportsFactory);
importsResolver.setModuleDescriptor(moduleDescriptor);
importsResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
importsResolver.setTrace(bindingTrace);
@@ -336,7 +334,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
javaPropertyResolver.setSemanticServices(javaSemanticServices);
javaPropertyResolver.setTrace(bindingTrace);
moduleConfiguration.init();
javaBridgeConfiguration.init();
psiClassFinder.initialize();
@@ -382,8 +380,12 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
return this.bindingTrace;
}
public ModuleConfiguration getModuleConfiguration() {
return this.moduleConfiguration;
public ModuleDescriptorImpl getModuleDescriptor() {
return this.moduleDescriptor;
}
public JavaBridgeConfiguration getJavaBridgeConfiguration() {
return this.javaBridgeConfiguration;
}
public NamespaceFactoryImpl getNamespaceFactory() {
@@ -31,6 +31,7 @@ import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm;
import org.jetbrains.jet.lang.DefaultModuleConfiguration;
import org.jetbrains.jet.lang.ModuleConfiguration;
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.psi.JetFile;
@@ -72,11 +73,11 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade {
@NotNull Predicate<PsiFile> filesForBodiesResolve,
@NotNull BindingTrace headersTraceContext,
@NotNull BodiesResolveContext bodiesResolveContext,
@NotNull ModuleConfiguration configuration
@NotNull ModuleDescriptor module
) {
return AnalyzerFacadeForEverything.analyzeBodiesInFilesWithJavaIntegration(
project, scriptParameters, filesForBodiesResolve,
headersTraceContext, bodiesResolveContext, configuration);
headersTraceContext, bodiesResolveContext, module);
}
@NotNull
@@ -136,7 +137,7 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade {
ModuleDescriptorImpl lazyModule = new ModuleDescriptorImpl(Name.special("<lazy module>"));
lazyModule.setModuleConfiguration(moduleConfiguration);
return new ResolveSession(fileProject, storageManager, lazyModule, moduleConfiguration, declarationProviderFactory, javaResolverTrace);
return new ResolveSession(fileProject, storageManager, lazyModule, declarationProviderFactory, javaResolverTrace);
}
public static AnalyzeExhaust analyzeOneFileWithJavaIntegrationAndCheckForErrors(
@@ -209,13 +210,13 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade {
InjectorForTopDownAnalyzerForJvm injector = new InjectorForTopDownAnalyzerForJvm(
project, topDownAnalysisParameters,
new ObservableBindingTrace(trace), owner);
owner.setModuleConfiguration(injector.getModuleConfiguration());
owner.setModuleConfiguration(injector.getJavaBridgeConfiguration());
try {
injector.getTopDownAnalyzer().analyzeFiles(files, scriptParameters);
BodiesResolveContext bodiesResolveContext = storeContextForBodiesResolve ?
new CachedBodiesResolveContext(injector.getTopDownAnalysisContext()) :
null;
return AnalyzeExhaust.success(trace.getBindingContext(), bodiesResolveContext, injector.getModuleConfiguration());
return AnalyzeExhaust.success(trace.getBindingContext(), bodiesResolveContext, owner);
} finally {
injector.destroy();
}