Replace ModuleDescriptorImpl implementation
Change the way modules are configured: Add dependencies on other modules instead of adding additional package fragment providers Refactor related code Drop DependencyKind Hide common new module creation in CliLightClassGenerationSupport
This commit is contained in:
@@ -38,14 +38,10 @@ import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
|
||||
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingContext;
|
||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||
import org.jetbrains.jet.storage.LockBasedStorageManager;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
public class TopDownAnalyzer {
|
||||
|
||||
@@ -253,16 +249,24 @@ public class TopDownAnalyzer {
|
||||
@NotNull
|
||||
public TopDownAnalysisContext analyzeFiles(
|
||||
@NotNull TopDownAnalysisParameters topDownAnalysisParameters,
|
||||
@NotNull Collection<JetFile> files
|
||||
@NotNull Collection<JetFile> files,
|
||||
@NotNull PackageFragmentProvider... additionalProviders
|
||||
) {
|
||||
((ModuleDescriptorImpl) moduleDescriptor).addFragmentProvider(DependencyKind.SOURCES, packageFragmentProvider);
|
||||
return analyzeFiles(topDownAnalysisParameters, files, Arrays.asList(additionalProviders));
|
||||
}
|
||||
|
||||
// "depend on" builtins module
|
||||
((ModuleDescriptorImpl) moduleDescriptor).addFragmentProvider(DependencyKind.BUILT_INS, KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider());
|
||||
@NotNull
|
||||
public TopDownAnalysisContext analyzeFiles(
|
||||
@NotNull TopDownAnalysisParameters topDownAnalysisParameters,
|
||||
@NotNull Collection<JetFile> files,
|
||||
@NotNull List<PackageFragmentProvider> additionalProviders
|
||||
) {
|
||||
CompositePackageFragmentProvider provider =
|
||||
new CompositePackageFragmentProvider(KotlinPackage.plus(Arrays.asList(packageFragmentProvider), additionalProviders));
|
||||
((ModuleDescriptorImpl) moduleDescriptor).initialize(provider);
|
||||
|
||||
// dummy builder is used because "root" is module descriptor,
|
||||
// packages added to module explicitly in
|
||||
|
||||
TopDownAnalysisContext c = new TopDownAnalysisContext(topDownAnalysisParameters);
|
||||
doProcess(c, JetModuleUtil.getSubpackagesOfRootScope(moduleDescriptor), new PackageLikeBuilderDummy(), files);
|
||||
return c;
|
||||
|
||||
@@ -150,9 +150,6 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
||||
}
|
||||
};
|
||||
|
||||
// TODO: parameter modification
|
||||
rootDescriptor.addFragmentProvider(DependencyKind.SOURCES, packageFragmentProvider);
|
||||
|
||||
this.scriptDescriptors = storageManager.createMemoizedFunction(
|
||||
new Function1<JetScript, LazyScriptDescriptor>() {
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user