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 ae19d4616a6..7c29056415f 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 @@ -43,6 +43,7 @@ import org.jetbrains.jet.codegen.KotlinCodegenFacade; import org.jetbrains.jet.codegen.state.GenerationState; import org.jetbrains.jet.config.CompilerConfiguration; import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm; +import org.jetbrains.jet.lang.descriptors.DependencyKind; import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl; import org.jetbrains.jet.lang.descriptors.ScriptDescriptor; import org.jetbrains.jet.lang.descriptors.impl.PackageLikeBuilderDummy; @@ -73,6 +74,9 @@ import java.util.List; import static org.jetbrains.jet.codegen.AsmUtil.asmTypeByFqNameWithoutInnerClasses; import static org.jetbrains.jet.codegen.binding.CodegenBinding.registerClassNameForScript; +import static org.jetbrains.jet.lang.descriptors.DependencyKind.BINARIES; +import static org.jetbrains.jet.lang.descriptors.DependencyKind.BUILT_INS; +import static org.jetbrains.jet.lang.descriptors.DependencyKind.SOURCES; public class ReplInterpreter { @@ -103,9 +107,9 @@ public class ReplInterpreter { true, Collections.emptyList()); injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module); - module.addFragmentProvider(injector.getTopDownAnalyzer().getPackageFragmentProvider()); - module.addFragmentProvider(KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider()); - module.addFragmentProvider(injector.getJavaDescriptorResolver().getPackageFragmentProvider()); + module.addFragmentProvider(SOURCES, injector.getTopDownAnalyzer().getPackageFragmentProvider()); + module.addFragmentProvider(BUILT_INS, KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider()); + module.addFragmentProvider(BINARIES, injector.getJavaDescriptorResolver().getPackageFragmentProvider()); List classpath = Lists.newArrayList(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolverUtil.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolverUtil.java index f864ba86f3d..d837276498d 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolverUtil.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolverUtil.java @@ -18,13 +18,14 @@ package org.jetbrains.jet.di; import com.intellij.openapi.project.Project; import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.descriptors.DependencyKind; import org.jetbrains.jet.lang.resolve.BindingTrace; public class InjectorForJavaDescriptorResolverUtil { @NotNull public static InjectorForJavaDescriptorResolver create(@NotNull Project project, @NotNull BindingTrace bindingTrace) { InjectorForJavaDescriptorResolver injector = new InjectorForJavaDescriptorResolver(project, bindingTrace); - injector.getModule().addFragmentProvider(injector.getJavaDescriptorResolver().getPackageFragmentProvider()); + injector.getModule().addFragmentProvider(DependencyKind.BINARIES, injector.getJavaDescriptorResolver().getPackageFragmentProvider()); return injector; } } 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 684c3b8bc7e..be028bd25da 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 @@ -28,6 +28,7 @@ import org.jetbrains.jet.analyzer.AnalyzerFacadeForEverything; import org.jetbrains.jet.di.InjectorForJavaDescriptorResolver; import org.jetbrains.jet.di.InjectorForJavaDescriptorResolverUtil; import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm; +import org.jetbrains.jet.lang.descriptors.DependencyKind; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl; import org.jetbrains.jet.lang.psi.JetFile; @@ -110,7 +111,7 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade { ModuleDescriptorImpl module = injector.getModule(); if (addBuiltIns) { - module.addFragmentProvider(KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider()); + module.addFragmentProvider(DependencyKind.BUILT_INS, KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider()); } return new ResolveSession(project, storageManager, module, declarationProviderFactory, trace); @@ -196,7 +197,7 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade { InjectorForTopDownAnalyzerForJvm injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module); try { - module.addFragmentProvider(injector.getJavaDescriptorResolver().getPackageFragmentProvider()); + module.addFragmentProvider(DependencyKind.BINARIES, injector.getJavaDescriptorResolver().getPackageFragmentProvider()); injector.getTopDownAnalyzer().analyzeFiles(files, scriptParameters); BodiesResolveContext bodiesResolveContext = storeContextForBodiesResolve ? new CachedBodiesResolveContext(injector.getTopDownAnalysisContext()) : 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 c510900d2b4..a6b3a4b17d9 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java @@ -212,10 +212,10 @@ public class TopDownAnalyzer { public void analyzeFiles( @NotNull Collection files, @NotNull List scriptParameters) { - ((ModuleDescriptorImpl) moduleDescriptor).addFragmentProvider(packageFragmentProvider); + ((ModuleDescriptorImpl) moduleDescriptor).addFragmentProvider(DependencyKind.SOURCES, packageFragmentProvider); // "depend on" builtins module - ((ModuleDescriptorImpl) moduleDescriptor).addFragmentProvider(KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider()); + ((ModuleDescriptorImpl) moduleDescriptor).addFragmentProvider(DependencyKind.BUILT_INS, KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider()); // Import a scope that contains all top-level packages that come from dependencies // This makes the package visible at all, does not import themselves diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java index e1c0a330be2..180aeb4b0fd 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java @@ -148,7 +148,7 @@ public class ResolveSession implements KotlinCodeAnalyzer { return packageDescriptor.getDeclarationProvider().getAllDeclaredPackages(); } }; - rootDescriptor.addFragmentProvider(packageFragmentProvider); + rootDescriptor.addFragmentProvider(DependencyKind.SOURCES, packageFragmentProvider); } @NotNull diff --git a/compiler/tests/org/jetbrains/jet/JetTestUtils.java b/compiler/tests/org/jetbrains/jet/JetTestUtils.java index ee41f14278f..ffd2b1b7708 100644 --- a/compiler/tests/org/jetbrains/jet/JetTestUtils.java +++ b/compiler/tests/org/jetbrains/jet/JetTestUtils.java @@ -48,6 +48,7 @@ import org.jetbrains.jet.codegen.forTestCompile.ForTestPackJdkAnnotations; import org.jetbrains.jet.config.CommonConfigurationKeys; import org.jetbrains.jet.config.CompilerConfiguration; import org.jetbrains.jet.lang.PlatformToKotlinClassMap; +import org.jetbrains.jet.lang.descriptors.DependencyKind; import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl; import org.jetbrains.jet.lang.descriptors.impl.MutablePackageFragmentDescriptor; import org.jetbrains.jet.lang.diagnostics.Diagnostic; @@ -716,7 +717,7 @@ public class JetTestUtils { public static MutablePackageFragmentDescriptor createTestPackageFragment(@NotNull Name testPackageName, @NotNull String moduleName) { ModuleDescriptorImpl module = AnalyzerFacadeForJVM.createJavaModule(moduleName); MutablePackageFragmentProvider provider = new MutablePackageFragmentProvider(module); - module.addFragmentProvider(provider); + module.addFragmentProvider(DependencyKind.SOURCES, provider); return provider.getOrCreateFragment(FqName.topLevel(testPackageName)); } diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java index 0c9d0f73be0..f4d57142975 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java @@ -33,10 +33,7 @@ import org.jetbrains.jet.config.CommonConfigurationKeys; import org.jetbrains.jet.config.CompilerConfiguration; import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedClassDescriptor; import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm; -import org.jetbrains.jet.lang.descriptors.ClassDescriptor; -import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; -import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl; -import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor; +import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.resolve.*; import org.jetbrains.jet.test.TestCaseWithTmpdir; import org.jetbrains.jet.test.util.RecursiveDescriptorComparator; @@ -148,7 +145,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir { trace, module); - module.addFragmentProvider(injectorForAnalyzer.getJavaDescriptorResolver().getPackageFragmentProvider()); + module.addFragmentProvider(DependencyKind.BINARIES, injectorForAnalyzer.getJavaDescriptorResolver().getPackageFragmentProvider()); 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 488d54fa0ab..c7ab38140a9 100644 --- a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveDescriptorRendererTest.java +++ b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveDescriptorRendererTest.java @@ -52,7 +52,7 @@ public abstract class AbstractLazyResolveDescriptorRendererTest extends KotlinTe Collection files = Lists.newArrayList(psiFile); final ModuleDescriptorImpl lazyModule = AnalyzerFacadeForJVM.createJavaModule(""); - lazyModule.addFragmentProvider(KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider()); + lazyModule.addFragmentProvider(DependencyKind.BUILT_INS, KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider()); LockBasedLazyResolveStorageManager storageManager = new LockBasedLazyResolveStorageManager(); final ResolveSession resolveSession = new ResolveSession(getProject(), storageManager, lazyModule, 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 937b7823cb3..76f1bdcc366 100644 --- a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/LazyResolveTestUtil.java +++ b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/LazyResolveTestUtil.java @@ -28,6 +28,7 @@ import org.jetbrains.jet.di.InjectorForJavaDescriptorResolver; import org.jetbrains.jet.di.InjectorForJavaDescriptorResolverUtil; import org.jetbrains.jet.di.InjectorForTopDownAnalyzer; import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm; +import org.jetbrains.jet.lang.descriptors.DependencyKind; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl; import org.jetbrains.jet.lang.psi.JetFile; @@ -59,7 +60,7 @@ public class LazyResolveTestUtil { InjectorForTopDownAnalyzerForJvm injector = new InjectorForTopDownAnalyzerForJvm(environment.getProject(), params, sharedTrace, sharedModule); - sharedModule.addFragmentProvider(injector.getJavaDescriptorResolver().getPackageFragmentProvider()); + sharedModule.addFragmentProvider(DependencyKind.BINARIES, injector.getJavaDescriptorResolver().getPackageFragmentProvider()); return injector; } diff --git a/compiler/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java b/compiler/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java index 8f85d017743..e3cbe31f768 100644 --- a/compiler/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java +++ b/compiler/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java @@ -28,10 +28,7 @@ import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.di.InjectorForJavaDescriptorResolver; import org.jetbrains.jet.di.InjectorForJavaDescriptorResolverUtil; import org.jetbrains.jet.di.InjectorForTests; -import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; -import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl; -import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor; -import org.jetbrains.jet.lang.descriptors.ReceiverParameterDescriptor; +import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.impl.ReceiverParameterDescriptorImpl; import org.jetbrains.jet.lang.psi.JetExpression; import org.jetbrains.jet.lang.psi.JetPsiFactory; @@ -591,7 +588,7 @@ public class JetTypeCheckerTest extends JetLiteFixture { InjectorForJavaDescriptorResolver injector = InjectorForJavaDescriptorResolverUtil.create(getProject(), new BindingTraceContext()); JavaDescriptorResolver javaDescriptorResolver = injector.getJavaDescriptorResolver(); ModuleDescriptorImpl module = (ModuleDescriptorImpl) javaDescriptorResolver.getModule(); - module.addFragmentProvider(KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider()); + module.addFragmentProvider(DependencyKind.BUILT_INS, KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider()); for (ImportPath defaultImport : module.getDefaultImports()) { writableScope.importScope(module.getPackage(defaultImport.fqnPart()).getMemberScope()); } diff --git a/core/descriptors/src/org/jetbrains/jet/lang/descriptors/DependencyKind.java b/core/descriptors/src/org/jetbrains/jet/lang/descriptors/DependencyKind.java new file mode 100644 index 00000000000..31c95160bd3 --- /dev/null +++ b/core/descriptors/src/org/jetbrains/jet/lang/descriptors/DependencyKind.java @@ -0,0 +1,24 @@ +/* + * Copyright 2010-2014 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.descriptors; + +public enum DependencyKind { + // Using this class is supposed to be a temporary measure before we switch to full-blown support for module dependency ordering + SOURCES, + BUILT_INS, + BINARIES +} diff --git a/core/descriptors/src/org/jetbrains/jet/lang/descriptors/ModuleDescriptorImpl.java b/core/descriptors/src/org/jetbrains/jet/lang/descriptors/ModuleDescriptorImpl.java index 3bf3793c211..7b6e9d7bf30 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/descriptors/ModuleDescriptorImpl.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/descriptors/ModuleDescriptorImpl.java @@ -17,6 +17,7 @@ package org.jetbrains.jet.lang.descriptors; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import com.intellij.openapi.diagnostic.Logger; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -30,12 +31,13 @@ import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.types.TypeSubstitutor; -import java.util.Collections; -import java.util.List; +import java.util.*; public class ModuleDescriptorImpl extends DeclarationDescriptorImpl implements ModuleDescriptor { private static final Logger LOG = Logger.getInstance(ModuleDescriptorImpl.class); + + private final Map> prioritizedFragmentProviders = Maps.newHashMap(); private final List fragmentProviders = Lists.newArrayList(); private final CompositePackageFragmentProvider packageFragmentProvider = new CompositePackageFragmentProvider(fragmentProviders); private final List defaultImports; @@ -54,11 +56,27 @@ public class ModuleDescriptorImpl extends DeclarationDescriptorImpl implements M this.platformToKotlinClassMap = platformToKotlinClassMap; } - public void addFragmentProvider(@NotNull PackageFragmentProvider provider) { + public void addFragmentProvider(@NotNull DependencyKind dependencyKind, @NotNull PackageFragmentProvider provider) { if (fragmentProviders.contains(provider)) { LOG.error("Trying to add already present fragment provider: " + provider); } - fragmentProviders.add(provider); + List providers = prioritizedFragmentProviders.get(dependencyKind); + if (providers == null) { + providers = new ArrayList(1); + prioritizedFragmentProviders.put(dependencyKind, providers); + } + providers.add(provider); + buildProvidersList(); + } + + private void buildProvidersList() { + fragmentProviders.clear(); + for (DependencyKind dependencyKind : DependencyKind.values()) { + List providers = prioritizedFragmentProviders.get(dependencyKind); + if (providers != null) { + fragmentProviders.addAll(providers); + } + } } @Override diff --git a/core/descriptors/src/org/jetbrains/jet/lang/types/lang/KotlinBuiltIns.java b/core/descriptors/src/org/jetbrains/jet/lang/types/lang/KotlinBuiltIns.java index c35788df948..13834dbeaa8 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/types/lang/KotlinBuiltIns.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/types/lang/KotlinBuiltIns.java @@ -128,7 +128,7 @@ public class KotlinBuiltIns { Collections.emptyList(), PlatformToKotlinClassMap.EMPTY); builtinsPackageFragment = new BuiltinsPackageFragment(new LockBasedStorageManager(), builtInsModule); - builtInsModule.addFragmentProvider(builtinsPackageFragment.getProvider()); + builtInsModule.addFragmentProvider(DependencyKind.SOURCES, builtinsPackageFragment.getProvider()); this.functionClassesSet = computeIndexedClasses("Function", FUNCTION_TRAIT_COUNT); this.extensionFunctionClassesSet = computeIndexedClasses("ExtensionFunction", FUNCTION_TRAIT_COUNT); diff --git a/idea/src/org/jetbrains/jet/plugin/libraries/JetSourceNavigationHelper.java b/idea/src/org/jetbrains/jet/plugin/libraries/JetSourceNavigationHelper.java index dc471d197ec..802584b9281 100644 --- a/idea/src/org/jetbrains/jet/plugin/libraries/JetSourceNavigationHelper.java +++ b/idea/src/org/jetbrains/jet/plugin/libraries/JetSourceNavigationHelper.java @@ -45,6 +45,7 @@ import org.jetbrains.jet.codegen.binding.PsiCodegenPredictor; import org.jetbrains.jet.lang.PlatformToKotlinClassMap; import org.jetbrains.jet.lang.descriptors.CallableDescriptor; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; +import org.jetbrains.jet.lang.descriptors.DependencyKind; import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.DescriptorUtils; @@ -225,7 +226,7 @@ public class JetSourceNavigationHelper { AnalyzerFacadeForJVM.DEFAULT_IMPORTS, PlatformToKotlinClassMap.EMPTY); - moduleDescriptor.addFragmentProvider(KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider()); + moduleDescriptor.addFragmentProvider(DependencyKind.BUILT_INS, KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider()); KotlinCodeAnalyzer analyzer = new ResolveSession( project, 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 9ca84d41485..85f8f5221ee 100644 --- a/js/js.translator/src/org/jetbrains/k2js/analyze/AnalyzerFacadeForJS.java +++ b/js/js.translator/src/org/jetbrains/k2js/analyze/AnalyzerFacadeForJS.java @@ -27,6 +27,7 @@ import org.jetbrains.jet.analyzer.AnalyzeExhaust; import org.jetbrains.jet.analyzer.AnalyzerFacadeForEverything; import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJs; import org.jetbrains.jet.lang.PlatformToKotlinClassMap; +import org.jetbrains.jet.lang.descriptors.DependencyKind; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl; import org.jetbrains.jet.lang.psi.JetFile; @@ -93,7 +94,7 @@ public final class AnalyzerFacadeForJS { ModuleDescriptor libraryModule = config.getLibraryModule(); if (libraryModule != null) { - owner.addFragmentProvider(libraryModule.getPackageFragmentProvider()); // "import" analyzed library module + owner.addFragmentProvider(DependencyKind.BINARIES, libraryModule.getPackageFragmentProvider()); // "import" analyzed library module } BindingContext libraryContext = config.getLibraryContext(); @@ -155,7 +156,7 @@ public final class AnalyzerFacadeForJS { FileBasedDeclarationProviderFactory declarationProviderFactory = new FileBasedDeclarationProviderFactory( storageManager, Config.withJsLibAdded(files, config), Predicates.alwaysFalse()); ModuleDescriptorImpl module = createJsModule(""); - module.addFragmentProvider(KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider()); + module.addFragmentProvider(DependencyKind.BUILT_INS, KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider()); return new ResolveSession(config.getProject(), storageManager, module, declarationProviderFactory); }