Big refactoring. Migrating to package views and fragments.
This commit is contained in:
@@ -28,6 +28,7 @@ import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
||||
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl;
|
||||
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
||||
import org.jetbrains.jet.lang.resolve.NamespaceFactoryImpl;
|
||||
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
||||
import org.jetbrains.jet.lang.resolve.DeclarationResolver;
|
||||
@@ -66,6 +67,7 @@ public class InjectorForTopDownAnalyzerForJs {
|
||||
private final BindingTrace bindingTrace;
|
||||
private final ModuleDescriptorImpl moduleDescriptor;
|
||||
private final DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy;
|
||||
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
||||
private final NamespaceFactoryImpl namespaceFactory;
|
||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||
private final DeclarationResolver declarationResolver;
|
||||
@@ -105,6 +107,7 @@ public class InjectorForTopDownAnalyzerForJs {
|
||||
this.bindingTrace = bindingTrace;
|
||||
this.moduleDescriptor = moduleDescriptor;
|
||||
this.dependencyClassByQualifiedNameResolverDummy = new DependencyClassByQualifiedNameResolverDummyImpl();
|
||||
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
||||
this.namespaceFactory = new NamespaceFactoryImpl();
|
||||
this.platformToKotlinClassMap = org.jetbrains.jet.lang.PlatformToKotlinClassMap.EMPTY;
|
||||
this.declarationResolver = new DeclarationResolver();
|
||||
@@ -130,9 +133,9 @@ public class InjectorForTopDownAnalyzerForJs {
|
||||
this.topDownAnalyzer.setContext(topDownAnalysisContext);
|
||||
this.topDownAnalyzer.setDeclarationResolver(declarationResolver);
|
||||
this.topDownAnalyzer.setModuleDescriptor(moduleDescriptor);
|
||||
this.topDownAnalyzer.setNamespaceFactory(namespaceFactory);
|
||||
this.topDownAnalyzer.setOverloadResolver(overloadResolver);
|
||||
this.topDownAnalyzer.setOverrideResolver(overrideResolver);
|
||||
this.topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
||||
this.topDownAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||
this.topDownAnalyzer.setTrace(bindingTrace);
|
||||
this.topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
|
||||
@@ -161,7 +164,8 @@ public class InjectorForTopDownAnalyzerForJs {
|
||||
this.descriptorResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
this.descriptorResolver.setTypeResolver(typeResolver);
|
||||
|
||||
namespaceFactory.setModuleDescriptor(moduleDescriptor);
|
||||
namespaceFactory.setModule(moduleDescriptor);
|
||||
namespaceFactory.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
||||
namespaceFactory.setTrace(bindingTrace);
|
||||
|
||||
declarationResolver.setAnnotationResolver(annotationResolver);
|
||||
|
||||
+13
-12
@@ -54,18 +54,19 @@ public final class NamespaceDeclarationTranslator extends AbstractTranslator {
|
||||
NamespaceDescriptor rootNamespaceDescriptor = null;
|
||||
|
||||
for (JetFile file : files) {
|
||||
NamespaceDescriptor descriptor = context().bindingContext().get(BindingContext.FILE_TO_NAMESPACE, file);
|
||||
assert descriptor != null;
|
||||
NamespaceTranslator translator = descriptorToTranslator.get(descriptor);
|
||||
if (translator == null) {
|
||||
if (rootNamespaceDescriptor == null) {
|
||||
rootNamespaceDescriptor = getRootPackageDescriptor(descriptorToDefineInvocation, descriptor);
|
||||
}
|
||||
translator = new NamespaceTranslator(descriptor, descriptorToDefineInvocation, context());
|
||||
descriptorToTranslator.put(descriptor, translator);
|
||||
}
|
||||
|
||||
translator.translate(file);
|
||||
// TODO 1
|
||||
//NamespaceDescriptor descriptor = context().bindingContext().get(BindingContext.FILE_TO_NAMESPACE, file);
|
||||
//assert descriptor != null;
|
||||
//NamespaceTranslator translator = descriptorToTranslator.get(descriptor);
|
||||
//if (translator == null) {
|
||||
// if (rootNamespaceDescriptor == null) {
|
||||
// rootNamespaceDescriptor = getRootPackageDescriptor(descriptorToDefineInvocation, descriptor);
|
||||
// }
|
||||
// translator = new NamespaceTranslator(descriptor, descriptorToDefineInvocation, context());
|
||||
// descriptorToTranslator.put(descriptor, translator);
|
||||
//}
|
||||
//
|
||||
//translator.translate(file);
|
||||
}
|
||||
|
||||
if (rootNamespaceDescriptor == null) {
|
||||
|
||||
@@ -185,7 +185,7 @@ public final class JsDescriptorUtils {
|
||||
@Nullable
|
||||
public static Name getNameIfStandardType(@NotNull JetType type) {
|
||||
ClassifierDescriptor descriptor = type.getConstructor().getDeclarationDescriptor();
|
||||
if (descriptor != null && descriptor.getContainingDeclaration() == KotlinBuiltIns.getInstance().getBuiltInsPackage()) {
|
||||
if (descriptor != null && descriptor.getContainingDeclaration() == KotlinBuiltIns.getInstance().getBuiltInsPackageFragment()) {
|
||||
return descriptor.getName();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user