From e29418cde5e58e97ff1d7ecd02733879d6dec34e Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 16 Apr 2013 18:55:48 +0400 Subject: [PATCH] ModuleDescriptor stores a ModuleConfiguration --- .../jet/cli/jvm/repl/ReplInterpreter.java | 1 + .../jet/di/InjectorForJavaDescriptorResolver.java | 6 +++++- .../jet/di/InjectorForJavaSemanticServices.java | 2 ++ .../lang/resolve/java/AnalyzerFacadeForJVM.java | 8 +++++--- .../jet/lang/descriptors/ModuleDescriptor.java | 4 ++++ .../lang/descriptors/ModuleDescriptorImpl.java | 15 +++++++++++++++ .../jet/lang/resolve/TopDownAnalyzer.java | 1 + .../org/jetbrains/jet/lang/types/ErrorUtils.java | 8 +++++++- .../jet/lang/types/lang/KotlinBuiltIns.java | 5 ++++- .../jet/jvm/compiler/AbstractLoadJavaTest.java | 1 + ...AbstractLazyResolveDescriptorRendererTest.java | 1 + .../lang/resolve/lazy/LazyResolveTestUtil.java | 6 +++++- .../types/JetDefaultModalityModifiersTest.java | 2 +- .../generators/injectors/GenerateInjectors.java | 2 +- .../KotlinSignatureInJavaMarkerProvider.java | 5 ++++- .../libraries/JetSourceNavigationHelper.java | 4 +++- .../references/BuiltInsReferenceResolver.java | 7 ++++--- .../k2js/analyze/AnalyzerFacadeForJS.java | 4 +++- 18 files changed, 67 insertions(+), 15 deletions(-) diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplInterpreter.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplInterpreter.java index 62b813e2dd2..3471b9c2da6 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplInterpreter.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplInterpreter.java @@ -95,6 +95,7 @@ public class ReplInterpreter { true, Collections.emptyList()); injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module); + module.setModuleConfiguration(injector.getModuleConfiguration()); List classpath = Lists.newArrayList(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java index d227c4393ca..13702ad7627 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java @@ -92,7 +92,7 @@ public class InjectorForJavaDescriptorResolver { this.javaInnerClassResolver = new JavaInnerClassResolver(); this.javaPropertyResolver = new JavaPropertyResolver(); - javaBridgeConfiguration.setJavaSemanticServices(javaSemanticServices); + this.javaBridgeConfiguration.setJavaSemanticServices(javaSemanticServices); this.javaSemanticServices.setDescriptorResolver(javaDescriptorResolver); this.javaSemanticServices.setPsiClassFinder(psiClassFinder); @@ -183,6 +183,10 @@ public class InjectorForJavaDescriptorResolver { return this.moduleDescriptor; } + public JavaBridgeConfiguration getJavaBridgeConfiguration() { + return this.javaBridgeConfiguration; + } + public JavaSemanticServices getJavaSemanticServices() { return this.javaSemanticServices; } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaSemanticServices.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaSemanticServices.java index 85a038c9279..7cdea38caa4 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaSemanticServices.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaSemanticServices.java @@ -107,6 +107,8 @@ public class InjectorForJavaSemanticServices { this.psiClassFinder.setProject(project); + moduleDescriptor.setModuleConfiguration(javaBridgeConfiguration); + javaTypeTransformer.setJavaSemanticServices(javaSemanticServices); javaTypeTransformer.setResolver(javaDescriptorResolver); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/AnalyzerFacadeForJVM.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/AnalyzerFacadeForJVM.java index 96206a2d7eb..c97771edd20 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/AnalyzerFacadeForJVM.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/AnalyzerFacadeForJVM.java @@ -31,14 +31,13 @@ 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; import org.jetbrains.jet.lang.resolve.*; +import org.jetbrains.jet.lang.resolve.lazy.ResolveSession; import org.jetbrains.jet.lang.resolve.lazy.declarations.FileBasedDeclarationProviderFactory; import org.jetbrains.jet.lang.resolve.lazy.storage.LockBasedStorageManager; -import org.jetbrains.jet.lang.resolve.lazy.ResolveSession; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.scopes.JetScope; @@ -83,7 +82,7 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade { @NotNull @Override public ResolveSession getLazyResolveSession(@NotNull Project fileProject, @NotNull Collection files) { - ModuleDescriptor javaModule = new ModuleDescriptorImpl(Name.special("")); + ModuleDescriptorImpl javaModule = new ModuleDescriptorImpl(Name.special("")); BindingTraceContext javaResolverTrace = new BindingTraceContext(); InjectorForJavaDescriptorResolver injector = new InjectorForJavaDescriptorResolver(fileProject, javaResolverTrace, javaModule); @@ -132,8 +131,10 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade { return JavaToKotlinClassMap.getInstance(); } }; + javaModule.setModuleConfiguration(moduleConfiguration); ModuleDescriptorImpl lazyModule = new ModuleDescriptorImpl(Name.special("")); + lazyModule.setModuleConfiguration(moduleConfiguration); return new ResolveSession(fileProject, storageManager, lazyModule, moduleConfiguration, declarationProviderFactory, javaResolverTrace); } @@ -208,6 +209,7 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade { InjectorForTopDownAnalyzerForJvm injector = new InjectorForTopDownAnalyzerForJvm( project, topDownAnalysisParameters, new ObservableBindingTrace(trace), owner); + owner.setModuleConfiguration(injector.getModuleConfiguration()); try { injector.getTopDownAnalyzer().analyzeFiles(files, scriptParameters); BodiesResolveContext bodiesResolveContext = storeContextForBodiesResolve ? diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ModuleDescriptor.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ModuleDescriptor.java index 02ffc8b9f84..5aeb4b40df6 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ModuleDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ModuleDescriptor.java @@ -18,6 +18,7 @@ package org.jetbrains.jet.lang.descriptors; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.lang.ModuleConfiguration; import org.jetbrains.jet.lang.descriptors.impl.NamespaceDescriptorParent; import org.jetbrains.jet.lang.types.TypeSubstitutor; @@ -28,6 +29,9 @@ public interface ModuleDescriptor extends DeclarationDescriptor, NamespaceDescri NamespaceDescriptor getRootNamespace(); + @NotNull + ModuleConfiguration getModuleConfiguration(); + @NotNull @Override ModuleDescriptor substitute(@NotNull TypeSubstitutor substitutor); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ModuleDescriptorImpl.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ModuleDescriptorImpl.java index bfc88c3504b..d04399f29ea 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ModuleDescriptorImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ModuleDescriptorImpl.java @@ -18,16 +18,19 @@ package org.jetbrains.jet.lang.descriptors; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.lang.ModuleConfiguration; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.descriptors.impl.DeclarationDescriptorImpl; import org.jetbrains.jet.lang.descriptors.impl.NamespaceDescriptorImpl; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.types.TypeSubstitutor; +import javax.inject.Inject; import java.util.Collections; public class ModuleDescriptorImpl extends DeclarationDescriptorImpl implements ClassOrNamespaceDescriptor, ModuleDescriptor { private NamespaceDescriptor rootNamepsace; + private ModuleConfiguration moduleConfiguration; public ModuleDescriptorImpl(@NotNull Name name) { super(Collections.emptyList(), name); @@ -54,6 +57,18 @@ public class ModuleDescriptorImpl extends DeclarationDescriptorImpl implements C return rootNamepsace; } + @NotNull + @Override + public ModuleConfiguration getModuleConfiguration() { + return moduleConfiguration; + } + + @Inject + public ModuleDescriptorImpl setModuleConfiguration(@NotNull ModuleConfiguration moduleConfiguration) { + this.moduleConfiguration = moduleConfiguration; + return this; + } + public NamespaceDescriptorImpl getRootNamespaceDescriptorImpl() { return (NamespaceDescriptorImpl) rootNamepsace; } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java index 91f3c5a36f1..3f9b71fc5fd 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java @@ -187,6 +187,7 @@ public class TopDownAnalyzer { @NotNull JetClassOrObject object ) { ModuleDescriptorImpl moduleDescriptor = new ModuleDescriptorImpl(Name.special("")); + moduleDescriptor.setModuleConfiguration(ModuleConfiguration.EMPTY); TopDownAnalysisParameters topDownAnalysisParameters = new TopDownAnalysisParameters(Predicates.equalTo(object.getContainingFile()), diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/ErrorUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/ErrorUtils.java index 1cc7c44766e..19263b980ae 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/ErrorUtils.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/ErrorUtils.java @@ -18,6 +18,7 @@ package org.jetbrains.jet.lang.types; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.lang.ModuleConfiguration; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.descriptors.impl.*; @@ -31,7 +32,12 @@ import java.util.*; public class ErrorUtils { - private static final ModuleDescriptor ERROR_MODULE = new ModuleDescriptorImpl(Name.special("")); + private static final ModuleDescriptor ERROR_MODULE; + static { + ModuleDescriptorImpl module = new ModuleDescriptorImpl(Name.special("")); + module.setModuleConfiguration(ModuleConfiguration.EMPTY); + ERROR_MODULE = module; + } public static class ErrorScope implements JetScope { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/lang/KotlinBuiltIns.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/lang/KotlinBuiltIns.java index 2996d6c875c..0d9612c99b9 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/lang/KotlinBuiltIns.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/lang/KotlinBuiltIns.java @@ -171,6 +171,7 @@ public class KotlinBuiltIns { private KotlinBuiltIns(@NotNull Project project) { try { this.builtInsModule = new ModuleDescriptorImpl(Name.special("")); + builtInsModule.setModuleConfiguration(SpecialModuleConfiguration.INSTANCE); this.analyzer = createLazyResolveSession(project); this.functionClassesSet = computeIndexedClasses("Function", FUNCTION_TRAIT_COUNT); @@ -228,7 +229,7 @@ public class KotlinBuiltIns { project, storageManager, builtInsModule, - new SpecialModuleConfiguration(), + SpecialModuleConfiguration.INSTANCE, new FileBasedDeclarationProviderFactory(storageManager, files), ResolveSession.NO_ALIASES, Predicates.in(Sets.newHashSet(new FqNameUnsafe("jet.Any"), new FqNameUnsafe("jet.Nothing"))), @@ -258,6 +259,8 @@ public class KotlinBuiltIns { private static class SpecialModuleConfiguration implements ModuleConfiguration { + public static final ModuleConfiguration INSTANCE = new SpecialModuleConfiguration(); + private SpecialModuleConfiguration() { } diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java index 53d1360feab..f64a0179965 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java @@ -153,6 +153,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir { Predicates.alwaysFalse(), false, false, Collections.emptyList()), trace, moduleDescriptor); + moduleDescriptor.setModuleConfiguration(injectorForAnalyzer.getModuleConfiguration()); injectorForAnalyzer.getTopDownAnalyzer().analyzeFiles(environment.getSourceFiles(), Collections.emptyList()); diff --git a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveDescriptorRendererTest.java b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveDescriptorRendererTest.java index 30a52665e1c..6fdac1bef6d 100644 --- a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveDescriptorRendererTest.java +++ b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveDescriptorRendererTest.java @@ -55,6 +55,7 @@ public abstract class AbstractLazyResolveDescriptorRendererTest extends KotlinTe Collection files = Lists.newArrayList(psiFile); ModuleDescriptorImpl lazyModule = new ModuleDescriptorImpl(Name.special("")); + lazyModule.setModuleConfiguration(injectorForTopDownAnalyzer.getModuleConfiguration()); LockBasedStorageManager storageManager = new LockBasedStorageManager(); final ResolveSession resolveSession = new ResolveSession(getProject(), storageManager, lazyModule, injectorForTopDownAnalyzer.getModuleConfiguration(), new FileBasedDeclarationProviderFactory(storageManager, files)); diff --git a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/LazyResolveTestUtil.java b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/LazyResolveTestUtil.java index cf4226e54d1..42fd6eaf573 100644 --- a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/LazyResolveTestUtil.java +++ b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/LazyResolveTestUtil.java @@ -63,6 +63,7 @@ public class LazyResolveTestUtil { ModuleDescriptorImpl eagerModuleForLazy = new ModuleDescriptorImpl(Name.special("")); InjectorForTopDownAnalyzer tdaInjectorForLazy = createInjectorForTDA(eagerModuleForLazy, environment); + eagerModuleForLazy.setModuleConfiguration(tdaInjectorForLazy.getModuleConfiguration()); // This line is required fro the 'jet' namespace to be filled in with functions tdaInjectorForLazy.getTopDownAnalyzer().analyzeFiles( Collections.singletonList(JetPsiFactory.createFile(environment.getProject(), "")), Collections.emptyList()); @@ -81,6 +82,7 @@ public class LazyResolveTestUtil { public static ModuleDescriptor resolveEagerly(List files, JetCoreEnvironment environment) { ModuleDescriptorImpl module = new ModuleDescriptorImpl(Name.special("")); InjectorForTopDownAnalyzer injector = createInjectorForTDA(module, environment); + module.setModuleConfiguration(injector.getModuleConfiguration()); injector.getTopDownAnalyzer().analyzeFiles(files, Collections.emptyList()); return module; } @@ -88,7 +90,7 @@ public class LazyResolveTestUtil { public static KotlinCodeAnalyzer resolveLazilyWithSession(List files, JetCoreEnvironment environment) { JetTestUtils.newTrace(environment); - ModuleDescriptor javaModule = new ModuleDescriptorImpl(Name.special("")); + ModuleDescriptorImpl javaModule = new ModuleDescriptorImpl(Name.special("")); Project project = environment.getProject(); BindingTrace sharedTrace = CliLightClassGenerationSupport.getInstanceForCli(environment.getProject()).getTrace(); @@ -137,8 +139,10 @@ public class LazyResolveTestUtil { return JavaToKotlinClassMap.getInstance(); } }; + javaModule.setModuleConfiguration(moduleConfiguration); ModuleDescriptorImpl lazyModule = new ModuleDescriptorImpl(Name.special("")); + lazyModule.setModuleConfiguration(moduleConfiguration); return new ResolveSession(project, storageManager, lazyModule, moduleConfiguration, declarationProviderFactory, sharedTrace); } diff --git a/compiler/tests/org/jetbrains/jet/types/JetDefaultModalityModifiersTest.java b/compiler/tests/org/jetbrains/jet/types/JetDefaultModalityModifiersTest.java index fd3c07dd924..2cfe8e9a911 100644 --- a/compiler/tests/org/jetbrains/jet/types/JetDefaultModalityModifiersTest.java +++ b/compiler/tests/org/jetbrains/jet/types/JetDefaultModalityModifiersTest.java @@ -60,7 +60,7 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture { } public class JetDefaultModalityModifiersTestCase { - private ModuleDescriptor root = new ModuleDescriptorImpl(Name.special("")); + private ModuleDescriptorImpl root = new ModuleDescriptorImpl(Name.special("")); private DescriptorResolver descriptorResolver; private JetScope scope; diff --git a/generators/org/jetbrains/jet/generators/injectors/GenerateInjectors.java b/generators/org/jetbrains/jet/generators/injectors/GenerateInjectors.java index 7219e2364bf..08b2d4b647d 100644 --- a/generators/org/jetbrains/jet/generators/injectors/GenerateInjectors.java +++ b/generators/org/jetbrains/jet/generators/injectors/GenerateInjectors.java @@ -120,7 +120,7 @@ public class GenerateInjectors { generator.addPublicParameter(ModuleDescriptor.class); // Fields - generator.addField(JavaBridgeConfiguration.class); + generator.addPublicField(JavaBridgeConfiguration.class); generator.addPublicField(JavaSemanticServices.class); generator.addPublicField(JavaDescriptorResolver.class); generator.addPublicField(PsiClassFinderImpl.class); diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/ktSignature/KotlinSignatureInJavaMarkerProvider.java b/idea/src/org/jetbrains/jet/plugin/codeInsight/ktSignature/KotlinSignatureInJavaMarkerProvider.java index c8aeaa16ca5..de4222df214 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/ktSignature/KotlinSignatureInJavaMarkerProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/ktSignature/KotlinSignatureInJavaMarkerProvider.java @@ -116,7 +116,10 @@ public class KotlinSignatureInJavaMarkerProvider implements LineMarkerProvider { BindingContext bindingContext = declarationsCache.getBindingContext(); DelegatingBindingTrace delegatingTrace = new DelegatingBindingTrace(bindingContext, "wrapped context of declarations cache"); - return new InjectorForJavaDescriptorResolver(project, delegatingTrace, new ModuleDescriptorImpl(Name.special(""))); + ModuleDescriptorImpl moduleDescriptor = new ModuleDescriptorImpl(Name.special("")); + InjectorForJavaDescriptorResolver injector = new InjectorForJavaDescriptorResolver(project, delegatingTrace, moduleDescriptor); + moduleDescriptor.setModuleConfiguration(injector.getJavaBridgeConfiguration()); + return injector; } @Nullable diff --git a/idea/src/org/jetbrains/jet/plugin/libraries/JetSourceNavigationHelper.java b/idea/src/org/jetbrains/jet/plugin/libraries/JetSourceNavigationHelper.java index 2c20623931d..7e5a879c1cb 100644 --- a/idea/src/org/jetbrains/jet/plugin/libraries/JetSourceNavigationHelper.java +++ b/idea/src/org/jetbrains/jet/plugin/libraries/JetSourceNavigationHelper.java @@ -221,10 +221,12 @@ public class JetSourceNavigationHelper { return KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME.equals(fqName); } }); + ModuleDescriptorImpl moduleDescriptor = new ModuleDescriptorImpl(Name.special("")); + moduleDescriptor.setModuleConfiguration(DefaultModuleConfiguration.createStandardConfiguration()); KotlinCodeAnalyzer analyzer = new ResolveSession( project, storageManager, - new ModuleDescriptorImpl(Name.special("")), + moduleDescriptor, DefaultModuleConfiguration.createStandardConfiguration(), providerFactory); diff --git a/idea/src/org/jetbrains/jet/plugin/references/BuiltInsReferenceResolver.java b/idea/src/org/jetbrains/jet/plugin/references/BuiltInsReferenceResolver.java index 3b4f768d699..11be613ed81 100644 --- a/idea/src/org/jetbrains/jet/plugin/references/BuiltInsReferenceResolver.java +++ b/idea/src/org/jetbrains/jet/plugin/references/BuiltInsReferenceResolver.java @@ -34,6 +34,7 @@ import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.lang.ModuleConfiguration; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.descriptors.impl.NamespaceDescriptorImpl; @@ -224,9 +225,9 @@ public class BuiltInsReferenceResolver extends AbstractProjectComponent { private WritableScope memberScope; private FakeJetNamespaceDescriptor() { - super(new NamespaceDescriptorImpl(new ModuleDescriptorImpl(Name.special("")), - Collections.emptyList(), Name.special("")), - Collections.emptyList(), + super(new NamespaceDescriptorImpl( + new ModuleDescriptorImpl(Name.special("")).setModuleConfiguration(ModuleConfiguration.EMPTY), + Collections.emptyList(), Name.special("")), Collections.emptyList(), KotlinBuiltIns.getInstance().getBuiltInsPackage().getName()); } diff --git a/js/js.translator/src/org/jetbrains/k2js/analyze/AnalyzerFacadeForJS.java b/js/js.translator/src/org/jetbrains/k2js/analyze/AnalyzerFacadeForJS.java index 556f3647717..436e02cc291 100644 --- a/js/js.translator/src/org/jetbrains/k2js/analyze/AnalyzerFacadeForJS.java +++ b/js/js.translator/src/org/jetbrains/k2js/analyze/AnalyzerFacadeForJS.java @@ -90,6 +90,7 @@ public final class AnalyzerFacadeForJS { InjectorForTopDownAnalyzerForJs injector = new InjectorForTopDownAnalyzerForJs( project, topDownAnalysisParameters, trace, owner, new JsConfiguration(libraryBindingContext)); + owner.setModuleConfiguration(injector.getModuleConfiguration()); try { Collection allFiles = libraryBindingContext != null ? files : @@ -144,6 +145,7 @@ public final class AnalyzerFacadeForJS { FileBasedDeclarationProviderFactory declarationProviderFactory = new FileBasedDeclarationProviderFactory( storageManager, Config.withJsLibAdded(files, config), Predicates.alwaysFalse()); ModuleDescriptorImpl lazyModule = new ModuleDescriptorImpl(Name.special("")); - return new ResolveSession(config.getProject(), storageManager, lazyModule, new JsConfiguration(null), declarationProviderFactory); + lazyModule.setModuleConfiguration(new JsConfiguration(null)); + return new ResolveSession(config.getProject(), storageManager, lazyModule, lazyModule.getModuleConfiguration(), declarationProviderFactory); } }