From 1f74f0234436253584d5dd89412af38a53e1f096 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Fri, 10 Jan 2014 00:15:32 +0400 Subject: [PATCH] NamespaceFactoryImpl is abolished, since it is almost trivial. --- .../di/InjectorForTopDownAnalyzerForJvm.java | 11 +-- .../di/InjectorForTopDownAnalyzerBasic.java | 11 +-- .../jet/lang/resolve/NamespaceFactory.java | 26 ----- .../lang/resolve/NamespaceFactoryImpl.java | 99 ------------------- .../lang/resolve/ScriptHeaderResolver.java | 8 +- .../lang/resolve/TypeHierarchyResolver.java | 43 +++++++- .../injectors/GenerateInjectors.java | 3 - .../di/InjectorForTopDownAnalyzerForJs.java | 11 +-- 8 files changed, 49 insertions(+), 163 deletions(-) delete mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/resolve/NamespaceFactory.java delete mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/resolve/NamespaceFactoryImpl.java diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java index c81894ea6f2..807d3ae7f47 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java @@ -36,7 +36,6 @@ import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedErrorReporter; import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedMethodSignatureChecker; import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedExternalAnnotationResolver; import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider; -import org.jetbrains.jet.lang.resolve.NamespaceFactoryImpl; import org.jetbrains.jet.lang.resolve.java.resolver.JavaPackageFragmentProviderImpl; import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder; import org.jetbrains.jet.lang.resolve.DeclarationResolver; @@ -96,7 +95,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly private final PsiBasedMethodSignatureChecker psiBasedMethodSignatureChecker; private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver; private final MutablePackageFragmentProvider mutablePackageFragmentProvider; - private final NamespaceFactoryImpl namespaceFactory; private final JavaPackageFragmentProviderImpl javaPackageFragmentProvider; private final VirtualFileFinder virtualFileFinder; private final DeclarationResolver declarationResolver; @@ -157,7 +155,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker(); this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver(); this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor()); - this.namespaceFactory = new NamespaceFactoryImpl(); this.javaPackageFragmentProvider = new JavaPackageFragmentProviderImpl(); this.virtualFileFinder = org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder.SERVICE.getInstance(project); this.declarationResolver = new DeclarationResolver(); @@ -242,10 +239,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly psiBasedMethodSignatureChecker.setAnnotationResolver(javaAnnotationResolver); psiBasedMethodSignatureChecker.setExternalSignatureResolver(traceBasedExternalSignatureResolver); - namespaceFactory.setModule(moduleDescriptor); - namespaceFactory.setPackageFragmentProvider(mutablePackageFragmentProvider); - namespaceFactory.setTrace(bindingTrace); - this.javaPackageFragmentProvider.setCache(traceBasedJavaResolverCache); this.javaPackageFragmentProvider.setDeserializedDescriptorResolver(deserializedDescriptorResolver); this.javaPackageFragmentProvider.setJavaClassFinder(javaClassFinder); @@ -299,7 +292,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly scriptHeaderResolver.setContext(topDownAnalysisContext); scriptHeaderResolver.setDependencyClassByQualifiedNameResolver(javaDescriptorResolver); - scriptHeaderResolver.setNamespaceFactory(namespaceFactory); + scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider); scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters); scriptHeaderResolver.setTrace(bindingTrace); @@ -313,7 +306,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly typeHierarchyResolver.setContext(topDownAnalysisContext); typeHierarchyResolver.setDescriptorResolver(descriptorResolver); typeHierarchyResolver.setImportsResolver(importsResolver); - typeHierarchyResolver.setNamespaceFactory(namespaceFactory); + typeHierarchyResolver.setPackageFragmentProvider(mutablePackageFragmentProvider); typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver); typeHierarchyResolver.setTrace(bindingTrace); diff --git a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java index 41e7f0e6fd4..10503fcee0e 100644 --- a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java +++ b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java @@ -29,7 +29,6 @@ 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; import org.jetbrains.jet.lang.resolve.AnnotationResolver; @@ -68,7 +67,6 @@ public class InjectorForTopDownAnalyzerBasic { private final ModuleDescriptorImpl moduleDescriptor; private final DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy; private final MutablePackageFragmentProvider mutablePackageFragmentProvider; - private final NamespaceFactoryImpl namespaceFactory; private final PlatformToKotlinClassMap platformToKotlinClassMap; private final DeclarationResolver declarationResolver; private final AnnotationResolver annotationResolver; @@ -109,7 +107,6 @@ public class InjectorForTopDownAnalyzerBasic { this.moduleDescriptor = moduleDescriptor; this.dependencyClassByQualifiedNameResolverDummy = new DependencyClassByQualifiedNameResolverDummyImpl(); this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor()); - this.namespaceFactory = new NamespaceFactoryImpl(); this.platformToKotlinClassMap = platformToKotlinClassMap; this.declarationResolver = new DeclarationResolver(); this.annotationResolver = new AnnotationResolver(); @@ -165,10 +162,6 @@ public class InjectorForTopDownAnalyzerBasic { this.descriptorResolver.setExpressionTypingServices(expressionTypingServices); this.descriptorResolver.setTypeResolver(typeResolver); - namespaceFactory.setModule(moduleDescriptor); - namespaceFactory.setPackageFragmentProvider(mutablePackageFragmentProvider); - namespaceFactory.setTrace(bindingTrace); - declarationResolver.setAnnotationResolver(annotationResolver); declarationResolver.setContext(topDownAnalysisContext); declarationResolver.setDescriptorResolver(descriptorResolver); @@ -214,7 +207,7 @@ public class InjectorForTopDownAnalyzerBasic { scriptHeaderResolver.setContext(topDownAnalysisContext); scriptHeaderResolver.setDependencyClassByQualifiedNameResolver(dependencyClassByQualifiedNameResolverDummy); - scriptHeaderResolver.setNamespaceFactory(namespaceFactory); + scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider); scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters); scriptHeaderResolver.setTrace(bindingTrace); @@ -228,7 +221,7 @@ public class InjectorForTopDownAnalyzerBasic { typeHierarchyResolver.setContext(topDownAnalysisContext); typeHierarchyResolver.setDescriptorResolver(descriptorResolver); typeHierarchyResolver.setImportsResolver(importsResolver); - typeHierarchyResolver.setNamespaceFactory(namespaceFactory); + typeHierarchyResolver.setPackageFragmentProvider(mutablePackageFragmentProvider); typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver); typeHierarchyResolver.setTrace(bindingTrace); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/NamespaceFactory.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/NamespaceFactory.java deleted file mode 100644 index e1a254255e4..00000000000 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/NamespaceFactory.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2010-2013 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.jet.lang.resolve; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor; -import org.jetbrains.jet.lang.resolve.name.FqName; - -public interface NamespaceFactory { - @NotNull - PackageFragmentDescriptor createNamespaceDescriptorPathIfNeeded(@NotNull FqName fqName); -} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/NamespaceFactoryImpl.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/NamespaceFactoryImpl.java deleted file mode 100644 index 3ee3f5b6813..00000000000 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/NamespaceFactoryImpl.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright 2010-2013 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.jet.lang.resolve; - -import com.google.common.collect.Sets; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl; -import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor; -import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor; -import org.jetbrains.jet.lang.descriptors.impl.MutablePackageFragmentDescriptor; -import org.jetbrains.jet.lang.psi.JetFile; -import org.jetbrains.jet.lang.psi.JetNamespaceHeader; -import org.jetbrains.jet.lang.psi.JetSimpleNameExpression; -import org.jetbrains.jet.lang.resolve.name.FqName; - -import javax.inject.Inject; -import java.util.Collection; - -import static org.jetbrains.jet.lang.resolve.BindingContext.*; - -public class NamespaceFactoryImpl implements NamespaceFactory { - - private ModuleDescriptorImpl module; - private MutablePackageFragmentProvider packageFragmentProvider; - private BindingTrace trace; - - @Inject - public void setModule(ModuleDescriptorImpl module) { - this.module = module; - } - - @Inject - public void setTrace(BindingTrace trace) { - this.trace = trace; - } - - @Inject - public void setPackageFragmentProvider(MutablePackageFragmentProvider packageFragmentProvider) { - this.packageFragmentProvider = packageFragmentProvider; - } - - @NotNull - public MutablePackageFragmentDescriptor createPackageFragmentIfNeeded(@NotNull JetFile file) { - JetNamespaceHeader namespaceHeader = file.getNamespaceHeader(); - - assert namespaceHeader != null : "scripts are not supported"; - - MutablePackageFragmentDescriptor fragment = packageFragmentProvider.getOrCreateFragment(namespaceHeader.getFqName()); - - for (JetSimpleNameExpression nameExpression : namespaceHeader.getNamespaceNames()) { - FqName fqName = namespaceHeader.getFqName(nameExpression); - - PackageViewDescriptor packageView = module.getPackage(fqName); - assert packageView != null : "package not found: " + fqName; - trace.record(REFERENCE_TARGET, nameExpression, packageView); - - PackageViewDescriptor parentPackageView = packageView.getContainingDeclaration(); - assert parentPackageView != null : "package has no parent: " + packageView; - trace.record(RESOLUTION_SCOPE, nameExpression, parentPackageView.getMemberScope()); - } - - storeBindingForFile(file, fragment); - return fragment; - } - - @Override - @NotNull - public PackageFragmentDescriptor createNamespaceDescriptorPathIfNeeded(@NotNull FqName fqName) { - return packageFragmentProvider.getOrCreateFragment(fqName); - } - - private void storeBindingForFile(@NotNull JetFile file, @NotNull PackageFragmentDescriptor fragment) { - trace.record(BindingContext.FILE_TO_PACKAGE_FRAGMENT, file, fragment); - - // Register files corresponding to this namespace - // The trace currently does not support bi-di multimaps that would handle this task nicer - FqName fqName = fragment.getFqName(); - Collection files = trace.get(PACKAGE_TO_FILES, fqName); - if (files == null) { - files = Sets.newIdentityHashSet(); - } - files.add(file); - trace.record(BindingContext.PACKAGE_TO_FILES, fqName, files); - } -} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptHeaderResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptHeaderResolver.java index 6e7c52da101..6e6dd560463 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptHeaderResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptHeaderResolver.java @@ -52,7 +52,7 @@ public class ScriptHeaderResolver { public static final Key PRIORITY_KEY = Key.create(JetScript.class.getName() + ".priority"); @NotNull - private NamespaceFactory namespaceFactory; + private MutablePackageFragmentProvider packageFragmentProvider; @NotNull private DependencyClassByQualifiedNameResolver dependencyClassByQualifiedNameResolver; @NotNull @@ -63,8 +63,8 @@ public class ScriptHeaderResolver { private TopDownAnalysisParameters topDownAnalysisParameters; @Inject - public void setNamespaceFactory(@NotNull NamespaceFactory namespaceFactory) { - this.namespaceFactory = namespaceFactory; + public void setPackageFragmentProvider(@NotNull MutablePackageFragmentProvider packageFragmentProvider) { + this.packageFragmentProvider = packageFragmentProvider; } @Inject @@ -121,7 +121,7 @@ public class ScriptHeaderResolver { JetFile file = (JetFile) script.getContainingFile(); JetNamespaceHeader namespaceHeader = file.getNamespaceHeader(); FqName fqName = namespaceHeader != null ? new FqName(namespaceHeader.getQualifiedName()) : FqName.ROOT; - PackageFragmentDescriptor ns = namespaceFactory.createNamespaceDescriptorPathIfNeeded(fqName); + PackageFragmentDescriptor ns = packageFragmentProvider.getOrCreateFragment(fqName); Integer priority = script.getUserData(PRIORITY_KEY); if (priority == null) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java index fde7766d038..8a409d3a3ed 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java @@ -26,6 +26,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.impl.*; import org.jetbrains.jet.lang.psi.*; +import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.name.SpecialNames; import org.jetbrains.jet.lang.resolve.scopes.*; @@ -55,7 +56,7 @@ public class TypeHierarchyResolver { @NotNull private ScriptHeaderResolver scriptHeaderResolver; @NotNull - private NamespaceFactoryImpl namespaceFactory; + private MutablePackageFragmentProvider packageFragmentProvider; @NotNull private BindingTrace trace; @@ -80,8 +81,8 @@ public class TypeHierarchyResolver { } @Inject - public void setNamespaceFactory(@NotNull NamespaceFactoryImpl namespaceFactory) { - this.namespaceFactory = namespaceFactory; + public void setPackageFragmentProvider(@NotNull MutablePackageFragmentProvider packageFragmentProvider) { + this.packageFragmentProvider = packageFragmentProvider; } @Inject @@ -456,7 +457,7 @@ public class TypeHierarchyResolver { @Override public void visitJetFile(@NotNull JetFile file) { - MutablePackageFragmentDescriptor packageFragment = namespaceFactory.createPackageFragmentIfNeeded(file); + MutablePackageFragmentDescriptor packageFragment = getOrCreatePackageFragmentForFile(file); context.getPackageFragments().put(file, packageFragment); PackageViewDescriptor packageView = packageFragment.getContainingDeclaration().getPackage(packageFragment.getFqName()); @@ -538,6 +539,40 @@ public class TypeHierarchyResolver { } } + @NotNull + private MutablePackageFragmentDescriptor getOrCreatePackageFragmentForFile(@NotNull JetFile file) { + JetNamespaceHeader namespaceHeader = file.getNamespaceHeader(); + assert namespaceHeader != null : "scripts are not supported"; + + MutablePackageFragmentDescriptor fragment = packageFragmentProvider.getOrCreateFragment(namespaceHeader.getFqName()); + + for (JetSimpleNameExpression nameExpression : namespaceHeader.getNamespaceNames()) { + FqName fqName = namespaceHeader.getFqName(nameExpression); + + PackageViewDescriptor packageView = packageFragmentProvider.getModule().getPackage(fqName); + assert packageView != null : "package not found: " + fqName; + trace.record(REFERENCE_TARGET, nameExpression, packageView); + + PackageViewDescriptor parentPackageView = packageView.getContainingDeclaration(); + assert parentPackageView != null : "package has no parent: " + packageView; + trace.record(RESOLUTION_SCOPE, nameExpression, parentPackageView.getMemberScope()); + } + + trace.record(BindingContext.FILE_TO_PACKAGE_FRAGMENT, file, fragment); + + // Register files corresponding to this namespace + // The trace currently does not support bi-di multimaps that would handle this task nicer + FqName fqName = fragment.getFqName(); + Collection files = trace.get(PACKAGE_TO_FILES, fqName); + if (files == null) { + files = Sets.newIdentityHashSet(); + } + files.add(file); + trace.record(BindingContext.PACKAGE_TO_FILES, fqName, files); + return fragment; + } + + private void createClassObjectForEnumClass(@NotNull MutableClassDescriptor mutableClassDescriptor) { if (mutableClassDescriptor.getKind() == ClassKind.ENUM_CLASS) { MutableClassDescriptor classObject = createSyntheticClassObject(mutableClassDescriptor); diff --git a/generators/src/org/jetbrains/jet/generators/injectors/GenerateInjectors.java b/generators/src/org/jetbrains/jet/generators/injectors/GenerateInjectors.java index 09c1f9e6ab9..785b299456f 100644 --- a/generators/src/org/jetbrains/jet/generators/injectors/GenerateInjectors.java +++ b/generators/src/org/jetbrains/jet/generators/injectors/GenerateInjectors.java @@ -104,7 +104,6 @@ public class GenerateInjectors { generateInjectorForTopDownAnalyzerCommon(generator); generator.addField(DependencyClassByQualifiedNameResolverDummyImpl.class); generator.addField(MutablePackageFragmentProvider.class); - generator.addField(NamespaceFactoryImpl.class); generator.addParameter(PlatformToKotlinClassMap.class); generator.configure("compiler/frontend/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerBasic", GenerateInjectors.class); return generator; @@ -115,7 +114,6 @@ public class GenerateInjectors { generateInjectorForTopDownAnalyzerCommon(generator); generator.addField(DependencyClassByQualifiedNameResolverDummyImpl.class); generator.addField(MutablePackageFragmentProvider.class); - generator.addField(NamespaceFactoryImpl.class); generator.addField(false, PlatformToKotlinClassMap.class, null, new GivenExpression("org.jetbrains.jet.lang.PlatformToKotlinClassMap.EMPTY")); generator.configure("js/js.translator/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerForJs", GenerateInjectors.class); return generator; @@ -134,7 +132,6 @@ public class GenerateInjectors { generator.addField(PsiBasedMethodSignatureChecker.class); generator.addField(PsiBasedExternalAnnotationResolver.class); generator.addField(MutablePackageFragmentProvider.class); - generator.addField(NamespaceFactoryImpl.class); generator.addPublicField(JavaPackageFragmentProviderImpl.class); generator.addField(false, VirtualFileFinder.class, "virtualFileFinder", new GivenExpression( diff --git a/js/js.translator/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java b/js/js.translator/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java index 44e41daa55f..1bc81f6230b 100644 --- a/js/js.translator/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java +++ b/js/js.translator/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java @@ -29,7 +29,6 @@ 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; import org.jetbrains.jet.lang.resolve.AnnotationResolver; @@ -68,7 +67,6 @@ public class InjectorForTopDownAnalyzerForJs { private final ModuleDescriptorImpl moduleDescriptor; private final DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy; private final MutablePackageFragmentProvider mutablePackageFragmentProvider; - private final NamespaceFactoryImpl namespaceFactory; private final PlatformToKotlinClassMap platformToKotlinClassMap; private final DeclarationResolver declarationResolver; private final AnnotationResolver annotationResolver; @@ -108,7 +106,6 @@ public class InjectorForTopDownAnalyzerForJs { 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(); this.annotationResolver = new AnnotationResolver(); @@ -164,10 +161,6 @@ public class InjectorForTopDownAnalyzerForJs { this.descriptorResolver.setExpressionTypingServices(expressionTypingServices); this.descriptorResolver.setTypeResolver(typeResolver); - namespaceFactory.setModule(moduleDescriptor); - namespaceFactory.setPackageFragmentProvider(mutablePackageFragmentProvider); - namespaceFactory.setTrace(bindingTrace); - declarationResolver.setAnnotationResolver(annotationResolver); declarationResolver.setContext(topDownAnalysisContext); declarationResolver.setDescriptorResolver(descriptorResolver); @@ -213,7 +206,7 @@ public class InjectorForTopDownAnalyzerForJs { scriptHeaderResolver.setContext(topDownAnalysisContext); scriptHeaderResolver.setDependencyClassByQualifiedNameResolver(dependencyClassByQualifiedNameResolverDummy); - scriptHeaderResolver.setNamespaceFactory(namespaceFactory); + scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider); scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters); scriptHeaderResolver.setTrace(bindingTrace); @@ -227,7 +220,7 @@ public class InjectorForTopDownAnalyzerForJs { typeHierarchyResolver.setContext(topDownAnalysisContext); typeHierarchyResolver.setDescriptorResolver(descriptorResolver); typeHierarchyResolver.setImportsResolver(importsResolver); - typeHierarchyResolver.setNamespaceFactory(namespaceFactory); + typeHierarchyResolver.setPackageFragmentProvider(mutablePackageFragmentProvider); typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver); typeHierarchyResolver.setTrace(bindingTrace);