ModuleDescriptor interface extracted

This commit is contained in:
Andrey Breslav
2013-04-16 17:25:14 +04:00
parent 11568a6ec7
commit 2e44996cd0
26 changed files with 151 additions and 108 deletions
@@ -40,7 +40,7 @@ import org.jetbrains.jet.codegen.CompilationErrorHandler;
import org.jetbrains.jet.codegen.state.GenerationState; import org.jetbrains.jet.codegen.state.GenerationState;
import org.jetbrains.jet.config.CompilerConfiguration; import org.jetbrains.jet.config.CompilerConfiguration;
import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm; import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
import org.jetbrains.jet.lang.descriptors.impl.NamespaceDescriptorImpl; import org.jetbrains.jet.lang.descriptors.impl.NamespaceDescriptorImpl;
import org.jetbrains.jet.lang.descriptors.impl.NamespaceLikeBuilderDummy; import org.jetbrains.jet.lang.descriptors.impl.NamespaceLikeBuilderDummy;
import org.jetbrains.jet.lang.descriptors.ScriptDescriptor; import org.jetbrains.jet.lang.descriptors.ScriptDescriptor;
@@ -82,13 +82,13 @@ public class ReplInterpreter {
@NotNull @NotNull
private final BindingTraceContext trace; private final BindingTraceContext trace;
@NotNull @NotNull
private final ModuleDescriptor module; private final ModuleDescriptorImpl module;
public ReplInterpreter(@NotNull Disposable disposable, @NotNull CompilerConfiguration configuration) { public ReplInterpreter(@NotNull Disposable disposable, @NotNull CompilerConfiguration configuration) {
jetCoreEnvironment = new JetCoreEnvironment(disposable, configuration); jetCoreEnvironment = new JetCoreEnvironment(disposable, configuration);
Project project = jetCoreEnvironment.getProject(); Project project = jetCoreEnvironment.getProject();
trace = new BindingTraceContext(); trace = new BindingTraceContext();
module = new ModuleDescriptor(Name.special("<repl>")); module = new ModuleDescriptorImpl(Name.special("<repl>"));
TopDownAnalysisParameters topDownAnalysisParameters = new TopDownAnalysisParameters( TopDownAnalysisParameters topDownAnalysisParameters = new TopDownAnalysisParameters(
Predicates.<PsiFile>alwaysTrue(), Predicates.<PsiFile>alwaysTrue(),
false, false,
@@ -21,7 +21,7 @@ import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
import org.jetbrains.jet.lang.resolve.BindingTrace; import org.jetbrains.jet.lang.resolve.BindingTrace;
import org.jetbrains.jet.lang.resolve.java.JavaBridgeConfiguration; import org.jetbrains.jet.lang.resolve.java.JavaBridgeConfiguration;
import org.jetbrains.jet.lang.resolve.java.PsiClassFinderImpl; import org.jetbrains.jet.lang.resolve.java.PsiClassFinderImpl;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
import com.intellij.openapi.project.Project; import com.intellij.openapi.project.Project;
import org.jetbrains.jet.lang.resolve.java.provider.PsiDeclarationProviderFactory; import org.jetbrains.jet.lang.resolve.java.provider.PsiDeclarationProviderFactory;
import org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer; import org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer;
@@ -48,7 +48,7 @@ public class InjectorForJavaSemanticServices {
private BindingTrace bindingTrace; private BindingTrace bindingTrace;
private JavaBridgeConfiguration javaBridgeConfiguration; private JavaBridgeConfiguration javaBridgeConfiguration;
private PsiClassFinderImpl psiClassFinder; private PsiClassFinderImpl psiClassFinder;
private ModuleDescriptor moduleDescriptor; private ModuleDescriptorImpl moduleDescriptor;
private final Project project; private final Project project;
private PsiDeclarationProviderFactory psiDeclarationProviderFactory; private PsiDeclarationProviderFactory psiDeclarationProviderFactory;
private JavaTypeTransformer javaTypeTransformer; private JavaTypeTransformer javaTypeTransformer;
@@ -73,7 +73,7 @@ public class InjectorForJavaSemanticServices {
this.bindingTrace = new org.jetbrains.jet.lang.resolve.BindingTraceContext(); this.bindingTrace = new org.jetbrains.jet.lang.resolve.BindingTraceContext();
this.javaBridgeConfiguration = new JavaBridgeConfiguration(); this.javaBridgeConfiguration = new JavaBridgeConfiguration();
this.psiClassFinder = new PsiClassFinderImpl(); this.psiClassFinder = new PsiClassFinderImpl();
this.moduleDescriptor = new org.jetbrains.jet.lang.descriptors.ModuleDescriptor(org.jetbrains.jet.lang.resolve.name.Name.special("<dummy>")); this.moduleDescriptor = new org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl(org.jetbrains.jet.lang.resolve.name.Name.special("<dummy>"));
this.project = project; this.project = project;
this.psiDeclarationProviderFactory = new PsiDeclarationProviderFactory(getPsiClassFinder()); this.psiDeclarationProviderFactory = new PsiDeclarationProviderFactory(getPsiClassFinder());
this.javaTypeTransformer = new JavaTypeTransformer(); this.javaTypeTransformer = new JavaTypeTransformer();
@@ -25,7 +25,7 @@ import org.jetbrains.jet.lang.resolve.DescriptorResolver;
import com.intellij.openapi.project.Project; import com.intellij.openapi.project.Project;
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters; import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
import org.jetbrains.jet.lang.resolve.BindingTrace; import org.jetbrains.jet.lang.resolve.BindingTrace;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
import org.jetbrains.jet.lang.resolve.java.JavaBridgeConfiguration; import org.jetbrains.jet.lang.resolve.java.JavaBridgeConfiguration;
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver; import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
import org.jetbrains.jet.lang.resolve.java.PsiClassFinderImpl; import org.jetbrains.jet.lang.resolve.java.PsiClassFinderImpl;
@@ -77,7 +77,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
private final Project project; private final Project project;
private final TopDownAnalysisParameters topDownAnalysisParameters; private final TopDownAnalysisParameters topDownAnalysisParameters;
private final BindingTrace bindingTrace; private final BindingTrace bindingTrace;
private final ModuleDescriptor moduleDescriptor; private final ModuleDescriptorImpl moduleDescriptor;
private JavaBridgeConfiguration moduleConfiguration; private JavaBridgeConfiguration moduleConfiguration;
private JavaDescriptorResolver javaDescriptorResolver; private JavaDescriptorResolver javaDescriptorResolver;
private PsiClassFinderImpl psiClassFinder; private PsiClassFinderImpl psiClassFinder;
@@ -118,7 +118,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
@NotNull Project project, @NotNull Project project,
@NotNull TopDownAnalysisParameters topDownAnalysisParameters, @NotNull TopDownAnalysisParameters topDownAnalysisParameters,
@NotNull BindingTrace bindingTrace, @NotNull BindingTrace bindingTrace,
@NotNull ModuleDescriptor moduleDescriptor @NotNull ModuleDescriptorImpl moduleDescriptor
) { ) {
this.topDownAnalyzer = new TopDownAnalyzer(); this.topDownAnalyzer = new TopDownAnalyzer();
this.topDownAnalysisContext = new TopDownAnalysisContext(); this.topDownAnalysisContext = new TopDownAnalysisContext();
@@ -32,6 +32,7 @@ import org.jetbrains.jet.lang.DefaultModuleConfiguration;
import org.jetbrains.jet.lang.ModuleConfiguration; import org.jetbrains.jet.lang.ModuleConfiguration;
import org.jetbrains.jet.lang.PlatformToKotlinClassMap; import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; 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.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.*; import org.jetbrains.jet.lang.resolve.*;
@@ -82,7 +83,7 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade {
@NotNull @NotNull
@Override @Override
public ResolveSession getLazyResolveSession(@NotNull Project fileProject, @NotNull Collection<JetFile> files) { public ResolveSession getLazyResolveSession(@NotNull Project fileProject, @NotNull Collection<JetFile> files) {
ModuleDescriptor javaModule = new ModuleDescriptor(Name.special("<java module>")); ModuleDescriptor javaModule = new ModuleDescriptorImpl(Name.special("<java module>"));
BindingTraceContext javaResolverTrace = new BindingTraceContext(); BindingTraceContext javaResolverTrace = new BindingTraceContext();
InjectorForJavaDescriptorResolver injector = new InjectorForJavaDescriptorResolver(fileProject, javaResolverTrace, javaModule); InjectorForJavaDescriptorResolver injector = new InjectorForJavaDescriptorResolver(fileProject, javaResolverTrace, javaModule);
@@ -132,7 +133,7 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade {
} }
}; };
ModuleDescriptor lazyModule = new ModuleDescriptor(Name.special("<lazy module>")); ModuleDescriptorImpl lazyModule = new ModuleDescriptorImpl(Name.special("<lazy module>"));
return new ResolveSession(fileProject, storageManager, lazyModule, moduleConfiguration, declarationProviderFactory, javaResolverTrace); return new ResolveSession(fileProject, storageManager, lazyModule, moduleConfiguration, declarationProviderFactory, javaResolverTrace);
} }
@@ -199,7 +200,7 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade {
Predicate<PsiFile> filesToAnalyzeCompletely, Predicate<PsiFile> filesToAnalyzeCompletely,
boolean storeContextForBodiesResolve boolean storeContextForBodiesResolve
) { ) {
ModuleDescriptor owner = new ModuleDescriptor(Name.special("<module>")); ModuleDescriptorImpl owner = new ModuleDescriptorImpl(Name.special("<module>"));
TopDownAnalysisParameters topDownAnalysisParameters = new TopDownAnalysisParameters( TopDownAnalysisParameters topDownAnalysisParameters = new TopDownAnalysisParameters(
filesToAnalyzeCompletely, false, false, scriptParameters); filesToAnalyzeCompletely, false, false, scriptParameters);
@@ -26,6 +26,7 @@ import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; 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.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.descriptors.impl.NamespaceDescriptorParent; import org.jetbrains.jet.lang.descriptors.impl.NamespaceDescriptorParent;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
@@ -50,7 +51,7 @@ import java.util.Set;
public final class JavaNamespaceResolver { public final class JavaNamespaceResolver {
@NotNull @NotNull
public static final ModuleDescriptor FAKE_ROOT_MODULE = new ModuleDescriptor(JavaDescriptorResolver.JAVA_ROOT); public static final ModuleDescriptor FAKE_ROOT_MODULE = new ModuleDescriptorImpl(JavaDescriptorResolver.JAVA_ROOT);
@NotNull @NotNull
private final Map<FqName, JavaBaseScope> resolvedNamespaceCache = Maps.newHashMap(); private final Map<FqName, JavaBaseScope> resolvedNamespaceCache = Maps.newHashMap();
@NotNull @NotNull
@@ -25,7 +25,7 @@ import org.jetbrains.jet.lang.resolve.DescriptorResolver;
import com.intellij.openapi.project.Project; import com.intellij.openapi.project.Project;
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters; import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
import org.jetbrains.jet.lang.resolve.BindingTrace; import org.jetbrains.jet.lang.resolve.BindingTrace;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
import org.jetbrains.jet.lang.ModuleConfiguration; import org.jetbrains.jet.lang.ModuleConfiguration;
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl; import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl;
import org.jetbrains.jet.lang.resolve.NamespaceFactoryImpl; import org.jetbrains.jet.lang.resolve.NamespaceFactoryImpl;
@@ -60,7 +60,7 @@ public class InjectorForTopDownAnalyzerBasic {
private final Project project; private final Project project;
private final TopDownAnalysisParameters topDownAnalysisParameters; private final TopDownAnalysisParameters topDownAnalysisParameters;
private final BindingTrace bindingTrace; private final BindingTrace bindingTrace;
private final ModuleDescriptor moduleDescriptor; private final ModuleDescriptorImpl moduleDescriptor;
private final ModuleConfiguration moduleConfiguration; private final ModuleConfiguration moduleConfiguration;
private DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy; private DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy;
private NamespaceFactoryImpl namespaceFactory; private NamespaceFactoryImpl namespaceFactory;
@@ -85,7 +85,7 @@ public class InjectorForTopDownAnalyzerBasic {
@NotNull Project project, @NotNull Project project,
@NotNull TopDownAnalysisParameters topDownAnalysisParameters, @NotNull TopDownAnalysisParameters topDownAnalysisParameters,
@NotNull BindingTrace bindingTrace, @NotNull BindingTrace bindingTrace,
@NotNull ModuleDescriptor moduleDescriptor, @NotNull ModuleDescriptorImpl moduleDescriptor,
@NotNull ModuleConfiguration moduleConfiguration @NotNull ModuleConfiguration moduleConfiguration
) { ) {
this.topDownAnalyzer = new TopDownAnalyzer(); this.topDownAnalyzer = new TopDownAnalyzer();
@@ -18,64 +18,20 @@ package org.jetbrains.jet.lang.descriptors;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
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.descriptors.impl.NamespaceDescriptorParent; import org.jetbrains.jet.lang.descriptors.impl.NamespaceDescriptorParent;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.types.TypeSubstitutor; import org.jetbrains.jet.lang.types.TypeSubstitutor;
import java.util.Collections; public interface ModuleDescriptor extends DeclarationDescriptor, NamespaceDescriptorParent {
public class ModuleDescriptor extends DeclarationDescriptorImpl implements ClassOrNamespaceDescriptor, NamespaceDescriptorParent {
private NamespaceDescriptor rootNamepsace;
public ModuleDescriptor(@NotNull Name name) {
super(Collections.<AnnotationDescriptor>emptyList(), name);
if (!name.isSpecial()) {
throw new IllegalArgumentException("module name must be special: " + name);
}
}
public void setRootNamespace(@NotNull NamespaceDescriptor rootNs) {
if (this.rootNamepsace != null) {
throw new IllegalStateException("setRootNamespace() is called twice");
}
this.rootNamepsace = rootNs;
}
@Override @Override
@Nullable @Nullable
public DeclarationDescriptor getContainingDeclaration() { DeclarationDescriptor getContainingDeclaration();
return null;
}
public NamespaceDescriptor getRootNamespace() { NamespaceDescriptor getRootNamespace();
return rootNamepsace;
}
public NamespaceDescriptorImpl getRootNamespaceDescriptorImpl() {
return (NamespaceDescriptorImpl) rootNamepsace;
}
@NotNull @NotNull
@Override @Override
public ModuleDescriptor substitute(@NotNull TypeSubstitutor substitutor) { ModuleDescriptor substitute(@NotNull TypeSubstitutor substitutor);
return this;
}
@Override @Override
public <R, D> R accept(DeclarationDescriptorVisitor<R, D> visitor, D data) { <R, D> R accept(DeclarationDescriptorVisitor<R, D> visitor, D data);
return visitor.visitModuleDeclaration(this, data);
}
@Override
public void addNamespace(@NotNull NamespaceDescriptor namespaceDescriptor) {
if (namespaceDescriptor.getContainingDeclaration() != this) {
throw new IllegalStateException();
}
setRootNamespace(namespaceDescriptor);
}
} }
@@ -0,0 +1,81 @@
/*
* 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.descriptors;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
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 java.util.Collections;
public class ModuleDescriptorImpl extends DeclarationDescriptorImpl implements ClassOrNamespaceDescriptor, ModuleDescriptor {
private NamespaceDescriptor rootNamepsace;
public ModuleDescriptorImpl(@NotNull Name name) {
super(Collections.<AnnotationDescriptor>emptyList(), name);
if (!name.isSpecial()) {
throw new IllegalArgumentException("module name must be special: " + name);
}
}
public void setRootNamespace(@NotNull NamespaceDescriptor rootNs) {
if (this.rootNamepsace != null) {
throw new IllegalStateException("setRootNamespace() is called twice");
}
this.rootNamepsace = rootNs;
}
@Override
@Nullable
public DeclarationDescriptor getContainingDeclaration() {
return null;
}
@Override
public NamespaceDescriptor getRootNamespace() {
return rootNamepsace;
}
public NamespaceDescriptorImpl getRootNamespaceDescriptorImpl() {
return (NamespaceDescriptorImpl) rootNamepsace;
}
@NotNull
@Override
public ModuleDescriptor substitute(@NotNull TypeSubstitutor substitutor) {
return this;
}
@Override
public <R, D> R accept(DeclarationDescriptorVisitor<R, D> visitor, D data) {
return visitor.visitModuleDeclaration(this, data);
}
@Override
public void addNamespace(@NotNull NamespaceDescriptor namespaceDescriptor) {
if (namespaceDescriptor.getContainingDeclaration() != this) {
throw new IllegalStateException();
}
setRootNamespace(namespaceDescriptor);
}
}
@@ -150,8 +150,8 @@ public class DescriptorUtils {
} }
public static boolean isInSameModule(@NotNull DeclarationDescriptor first, @NotNull DeclarationDescriptor second) { public static boolean isInSameModule(@NotNull DeclarationDescriptor first, @NotNull DeclarationDescriptor second) {
ModuleDescriptor parentModule = DescriptorUtils.getParentOfType(first, ModuleDescriptor.class, false); ModuleDescriptor parentModule = DescriptorUtils.getParentOfType(first, ModuleDescriptorImpl.class, false);
ModuleDescriptor fromModule = DescriptorUtils.getParentOfType(second, ModuleDescriptor.class, false); ModuleDescriptor fromModule = DescriptorUtils.getParentOfType(second, ModuleDescriptorImpl.class, false);
assert parentModule != null && fromModule != null; assert parentModule != null && fromModule != null;
return parentModule.equals(fromModule); return parentModule.equals(fromModule);
} }
@@ -21,7 +21,7 @@ import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.ModuleConfiguration; import org.jetbrains.jet.lang.ModuleConfiguration;
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.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.descriptors.impl.NamespaceDescriptorImpl; import org.jetbrains.jet.lang.descriptors.impl.NamespaceDescriptorImpl;
import org.jetbrains.jet.lang.descriptors.impl.NamespaceDescriptorParent; import org.jetbrains.jet.lang.descriptors.impl.NamespaceDescriptorParent;
@@ -43,12 +43,12 @@ import static org.jetbrains.jet.lang.resolve.BindingContext.*;
public class NamespaceFactoryImpl implements NamespaceFactory { public class NamespaceFactoryImpl implements NamespaceFactory {
private ModuleDescriptor moduleDescriptor; private ModuleDescriptorImpl moduleDescriptor;
private BindingTrace trace; private BindingTrace trace;
private ModuleConfiguration configuration; private ModuleConfiguration configuration;
@Inject @Inject
public void setModuleDescriptor(ModuleDescriptor moduleDescriptor) { public void setModuleDescriptor(ModuleDescriptorImpl moduleDescriptor) {
this.moduleDescriptor = moduleDescriptor; this.moduleDescriptor = moduleDescriptor;
} }
@@ -136,7 +136,7 @@ public class NamespaceFactoryImpl implements NamespaceFactory {
} }
private NamespaceDescriptorImpl createRootNamespaceDescriptorIfNeeded(@Nullable JetFile file, private NamespaceDescriptorImpl createRootNamespaceDescriptorIfNeeded(@Nullable JetFile file,
@NotNull ModuleDescriptor owner, @NotNull ModuleDescriptorImpl owner,
@Nullable JetReferenceExpression expression, @Nullable JetReferenceExpression expression,
@NotNull RedeclarationHandler handler) { @NotNull RedeclarationHandler handler) {
FqName fqName = FqName.ROOT; FqName fqName = FqName.ROOT;
@@ -186,7 +186,7 @@ public class TopDownAnalyzer {
@NotNull final DeclarationDescriptor containingDeclaration, @NotNull final DeclarationDescriptor containingDeclaration,
@NotNull JetClassOrObject object @NotNull JetClassOrObject object
) { ) {
ModuleDescriptor moduleDescriptor = new ModuleDescriptor(Name.special("<dummy for object>")); ModuleDescriptorImpl moduleDescriptor = new ModuleDescriptorImpl(Name.special("<dummy for object>"));
TopDownAnalysisParameters topDownAnalysisParameters = TopDownAnalysisParameters topDownAnalysisParameters =
new TopDownAnalysisParameters(Predicates.equalTo(object.getContainingFile()), new TopDownAnalysisParameters(Predicates.equalTo(object.getContainingFile()),
@@ -72,7 +72,7 @@ public class ResolveSession implements KotlinCodeAnalyzer {
public ResolveSession( public ResolveSession(
@NotNull Project project, @NotNull Project project,
@NotNull StorageManager storageManager, @NotNull StorageManager storageManager,
@NotNull ModuleDescriptor rootDescriptor, @NotNull ModuleDescriptorImpl rootDescriptor,
@NotNull ModuleConfiguration moduleConfiguration, @NotNull ModuleConfiguration moduleConfiguration,
@NotNull DeclarationProviderFactory declarationProviderFactory @NotNull DeclarationProviderFactory declarationProviderFactory
) { ) {
@@ -84,7 +84,7 @@ public class ResolveSession implements KotlinCodeAnalyzer {
public ResolveSession( public ResolveSession(
@NotNull Project project, @NotNull Project project,
@NotNull StorageManager storageManager, @NotNull StorageManager storageManager,
@NotNull ModuleDescriptor rootDescriptor, @NotNull ModuleDescriptorImpl rootDescriptor,
@NotNull ModuleConfiguration moduleConfiguration, @NotNull ModuleConfiguration moduleConfiguration,
@NotNull DeclarationProviderFactory declarationProviderFactory, @NotNull DeclarationProviderFactory declarationProviderFactory,
@NotNull BindingTrace delegationTrace @NotNull BindingTrace delegationTrace
@@ -103,7 +103,7 @@ public class ResolveSession implements KotlinCodeAnalyzer {
public ResolveSession( public ResolveSession(
@NotNull Project project, @NotNull Project project,
@NotNull StorageManager storageManager, @NotNull StorageManager storageManager,
@NotNull ModuleDescriptor rootDescriptor, @NotNull ModuleDescriptorImpl rootDescriptor,
@NotNull ModuleConfiguration moduleConfiguration, @NotNull ModuleConfiguration moduleConfiguration,
@NotNull DeclarationProviderFactory declarationProviderFactory, @NotNull DeclarationProviderFactory declarationProviderFactory,
@NotNull Function<FqName, Name> classifierAliases, @NotNull Function<FqName, Name> classifierAliases,
@@ -31,7 +31,7 @@ import java.util.*;
public class ErrorUtils { public class ErrorUtils {
private static final ModuleDescriptor ERROR_MODULE = new ModuleDescriptor(Name.special("<ERROR MODULE>")); private static final ModuleDescriptor ERROR_MODULE = new ModuleDescriptorImpl(Name.special("<ERROR MODULE>"));
public static class ErrorScope implements JetScope { public static class ErrorScope implements JetScope {
@@ -138,7 +138,7 @@ public class KotlinBuiltIns {
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
private final KotlinCodeAnalyzer analyzer; private final KotlinCodeAnalyzer analyzer;
private final ModuleDescriptor builtInsModule; private final ModuleDescriptorImpl builtInsModule;
private volatile ImmutableSet<ClassDescriptor> nonPhysicalClasses; private volatile ImmutableSet<ClassDescriptor> nonPhysicalClasses;
@@ -170,7 +170,7 @@ public class KotlinBuiltIns {
private KotlinBuiltIns(@NotNull Project project) { private KotlinBuiltIns(@NotNull Project project) {
try { try {
this.builtInsModule = new ModuleDescriptor(Name.special("<built-ins lazy module>")); this.builtInsModule = new ModuleDescriptorImpl(Name.special("<built-ins lazy module>"));
this.analyzer = createLazyResolveSession(project); this.analyzer = createLazyResolveSession(project);
this.functionClassesSet = computeIndexedClasses("Function", FUNCTION_TRAIT_COUNT); this.functionClassesSet = computeIndexedClasses("Function", FUNCTION_TRAIT_COUNT);
@@ -298,7 +298,7 @@ public class KotlinBuiltIns {
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@NotNull @NotNull
public ModuleDescriptor getBuiltInsModule() { public ModuleDescriptorImpl getBuiltInsModule() {
return builtInsModule; return builtInsModule;
} }
@@ -31,7 +31,7 @@ import org.jetbrains.jet.config.CommonConfigurationKeys;
import org.jetbrains.jet.config.CompilerConfiguration; import org.jetbrains.jet.config.CompilerConfiguration;
import org.jetbrains.jet.di.InjectorForJavaDescriptorResolver; import org.jetbrains.jet.di.InjectorForJavaDescriptorResolver;
import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm; import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm;
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.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter; import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.BindingContext;
@@ -138,7 +138,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir {
configuration.put(CommonConfigurationKeys.SOURCE_ROOTS_KEY, Arrays.asList(sourcesDir.getAbsolutePath())); configuration.put(CommonConfigurationKeys.SOURCE_ROOTS_KEY, Arrays.asList(sourcesDir.getAbsolutePath()));
JetCoreEnvironment environment = new JetCoreEnvironment(getTestRootDisposable(), configuration); JetCoreEnvironment environment = new JetCoreEnvironment(getTestRootDisposable(), configuration);
ModuleDescriptor moduleDescriptor = new ModuleDescriptor(Name.special("<test module>")); ModuleDescriptorImpl moduleDescriptor = new ModuleDescriptorImpl(Name.special("<test module>"));
// we need the same binding trace for resolve from Java and Kotlin // we need the same binding trace for resolve from Java and Kotlin
BindingTrace trace = CliLightClassGenerationSupport.getInstanceForCli(environment.getProject()).getTrace(); BindingTrace trace = CliLightClassGenerationSupport.getInstanceForCli(environment.getProject()).getTrace();
@@ -54,7 +54,7 @@ public abstract class AbstractLazyResolveDescriptorRendererTest extends KotlinTe
JetFile psiFile = JetPsiFactory.createFile(getProject(), FileUtil.loadFile(new File(testFile), true)); JetFile psiFile = JetPsiFactory.createFile(getProject(), FileUtil.loadFile(new File(testFile), true));
Collection<JetFile> files = Lists.newArrayList(psiFile); Collection<JetFile> files = Lists.newArrayList(psiFile);
ModuleDescriptor lazyModule = new ModuleDescriptor(Name.special("<lazy module>")); ModuleDescriptorImpl lazyModule = new ModuleDescriptorImpl(Name.special("<lazy module>"));
LockBasedStorageManager storageManager = new LockBasedStorageManager(); LockBasedStorageManager storageManager = new LockBasedStorageManager();
final ResolveSession resolveSession = new ResolveSession(getProject(), storageManager, lazyModule, injectorForTopDownAnalyzer.getModuleConfiguration(), final ResolveSession resolveSession = new ResolveSession(getProject(), storageManager, lazyModule, injectorForTopDownAnalyzer.getModuleConfiguration(),
new FileBasedDeclarationProviderFactory(storageManager, files)); new FileBasedDeclarationProviderFactory(storageManager, files));
@@ -33,6 +33,7 @@ import org.jetbrains.jet.lang.DefaultModuleConfiguration;
import org.jetbrains.jet.lang.ModuleConfiguration; import org.jetbrains.jet.lang.ModuleConfiguration;
import org.jetbrains.jet.lang.PlatformToKotlinClassMap; import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; 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.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetNamespaceHeader; import org.jetbrains.jet.lang.psi.JetNamespaceHeader;
@@ -59,7 +60,7 @@ public class LazyResolveTestUtil {
} }
public static InjectorForTopDownAnalyzer getEagerInjectorForTopDownAnalyzer(JetCoreEnvironment environment) { public static InjectorForTopDownAnalyzer getEagerInjectorForTopDownAnalyzer(JetCoreEnvironment environment) {
ModuleDescriptor eagerModuleForLazy = new ModuleDescriptor(Name.special("<eager module for lazy>")); ModuleDescriptorImpl eagerModuleForLazy = new ModuleDescriptorImpl(Name.special("<eager module for lazy>"));
InjectorForTopDownAnalyzer tdaInjectorForLazy = createInjectorForTDA(eagerModuleForLazy, environment); InjectorForTopDownAnalyzer tdaInjectorForLazy = createInjectorForTDA(eagerModuleForLazy, environment);
// This line is required fro the 'jet' namespace to be filled in with functions // This line is required fro the 'jet' namespace to be filled in with functions
@@ -68,7 +69,7 @@ public class LazyResolveTestUtil {
return tdaInjectorForLazy; return tdaInjectorForLazy;
} }
public static InjectorForTopDownAnalyzer createInjectorForTDA(ModuleDescriptor module, JetCoreEnvironment environment) { public static InjectorForTopDownAnalyzer createInjectorForTDA(ModuleDescriptorImpl module, JetCoreEnvironment environment) {
JetTestUtils.newTrace(environment); JetTestUtils.newTrace(environment);
TopDownAnalysisParameters params = new TopDownAnalysisParameters( TopDownAnalysisParameters params = new TopDownAnalysisParameters(
@@ -78,7 +79,7 @@ public class LazyResolveTestUtil {
} }
public static ModuleDescriptor resolveEagerly(List<JetFile> files, JetCoreEnvironment environment) { public static ModuleDescriptor resolveEagerly(List<JetFile> files, JetCoreEnvironment environment) {
ModuleDescriptor module = new ModuleDescriptor(Name.special("<test module>")); ModuleDescriptorImpl module = new ModuleDescriptorImpl(Name.special("<test module>"));
InjectorForTopDownAnalyzer injector = createInjectorForTDA(module, environment); InjectorForTopDownAnalyzer injector = createInjectorForTDA(module, environment);
injector.getTopDownAnalyzer().analyzeFiles(files, Collections.<AnalyzerScriptParameter>emptyList()); injector.getTopDownAnalyzer().analyzeFiles(files, Collections.<AnalyzerScriptParameter>emptyList());
return module; return module;
@@ -87,7 +88,7 @@ public class LazyResolveTestUtil {
public static KotlinCodeAnalyzer resolveLazilyWithSession(List<JetFile> files, JetCoreEnvironment environment) { public static KotlinCodeAnalyzer resolveLazilyWithSession(List<JetFile> files, JetCoreEnvironment environment) {
JetTestUtils.newTrace(environment); JetTestUtils.newTrace(environment);
ModuleDescriptor javaModule = new ModuleDescriptor(Name.special("<java module>")); ModuleDescriptor javaModule = new ModuleDescriptorImpl(Name.special("<java module>"));
Project project = environment.getProject(); Project project = environment.getProject();
BindingTrace sharedTrace = CliLightClassGenerationSupport.getInstanceForCli(environment.getProject()).getTrace(); BindingTrace sharedTrace = CliLightClassGenerationSupport.getInstanceForCli(environment.getProject()).getTrace();
@@ -137,7 +138,7 @@ public class LazyResolveTestUtil {
} }
}; };
ModuleDescriptor lazyModule = new ModuleDescriptor(Name.special("<lazy module>")); ModuleDescriptorImpl lazyModule = new ModuleDescriptorImpl(Name.special("<lazy module>"));
return new ResolveSession(project, storageManager, lazyModule, moduleConfiguration, declarationProviderFactory, sharedTrace); return new ResolveSession(project, storageManager, lazyModule, moduleConfiguration, declarationProviderFactory, sharedTrace);
} }
@@ -60,7 +60,7 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture {
} }
public class JetDefaultModalityModifiersTestCase { public class JetDefaultModalityModifiersTestCase {
private ModuleDescriptor root = new ModuleDescriptor(Name.special("<test_root>")); private ModuleDescriptor root = new ModuleDescriptorImpl(Name.special("<test_root>"));
private DescriptorResolver descriptorResolver; private DescriptorResolver descriptorResolver;
private JetScope scope; private JetScope scope;
@@ -24,6 +24,7 @@ import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
import org.jetbrains.jet.di.InjectorForTests; import org.jetbrains.jet.di.InjectorForTests;
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
import org.jetbrains.jet.lang.psi.JetNamedFunction; import org.jetbrains.jet.lang.psi.JetNamedFunction;
import org.jetbrains.jet.lang.psi.JetPsiFactory; import org.jetbrains.jet.lang.psi.JetPsiFactory;
import org.jetbrains.jet.lang.resolve.DescriptorResolver; import org.jetbrains.jet.lang.resolve.DescriptorResolver;
@@ -33,7 +34,7 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
public class JetOverloadTest extends JetLiteFixture { public class JetOverloadTest extends JetLiteFixture {
private ModuleDescriptor root = new ModuleDescriptor(Name.special("<test_root>")); private ModuleDescriptor root = new ModuleDescriptorImpl(Name.special("<test_root>"));
private KotlinBuiltIns builtIns; private KotlinBuiltIns builtIns;
private DescriptorResolver descriptorResolver; private DescriptorResolver descriptorResolver;
@@ -24,6 +24,7 @@ import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
import org.jetbrains.jet.di.InjectorForTests; import org.jetbrains.jet.di.InjectorForTests;
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
import org.jetbrains.jet.lang.psi.JetNamedFunction; import org.jetbrains.jet.lang.psi.JetNamedFunction;
import org.jetbrains.jet.lang.psi.JetPsiFactory; import org.jetbrains.jet.lang.psi.JetPsiFactory;
import org.jetbrains.jet.lang.resolve.DescriptorResolver; import org.jetbrains.jet.lang.resolve.DescriptorResolver;
@@ -33,7 +34,7 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
public class JetOverridingTest extends JetLiteFixture { public class JetOverridingTest extends JetLiteFixture {
private ModuleDescriptor root = new ModuleDescriptor(Name.special("<test_root>")); private ModuleDescriptor root = new ModuleDescriptorImpl(Name.special("<test_root>"));
private KotlinBuiltIns builtIns; private KotlinBuiltIns builtIns;
private DescriptorResolver descriptorResolver; private DescriptorResolver descriptorResolver;
@@ -17,7 +17,10 @@
package org.jetbrains.jet.generators.injectors; package org.jetbrains.jet.generators.injectors;
import com.intellij.openapi.project.Project; import com.intellij.openapi.project.Project;
import org.jetbrains.jet.codegen.*; import org.jetbrains.jet.codegen.ClassBuilderFactory;
import org.jetbrains.jet.codegen.ClassBuilderMode;
import org.jetbrains.jet.codegen.ClassFileFactory;
import org.jetbrains.jet.codegen.ScriptCodegen;
import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethods; import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethods;
import org.jetbrains.jet.codegen.state.GenerationState; import org.jetbrains.jet.codegen.state.GenerationState;
import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.codegen.state.JetTypeMapper;
@@ -27,6 +30,7 @@ import org.jetbrains.jet.di.InjectorForTopDownAnalyzer;
import org.jetbrains.jet.di.InstantiateType; import org.jetbrains.jet.di.InstantiateType;
import org.jetbrains.jet.lang.ModuleConfiguration; import org.jetbrains.jet.lang.ModuleConfiguration;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
import org.jetbrains.jet.lang.psi.JetImportsFactory; import org.jetbrains.jet.lang.psi.JetImportsFactory;
import org.jetbrains.jet.lang.resolve.*; import org.jetbrains.jet.lang.resolve.*;
import org.jetbrains.jet.lang.resolve.calls.CallResolver; import org.jetbrains.jet.lang.resolve.calls.CallResolver;
@@ -138,7 +142,7 @@ public class GenerateInjectors {
generator.addPublicParameter(Project.class); generator.addPublicParameter(Project.class);
generator.addPublicParameter(TopDownAnalysisParameters.class); generator.addPublicParameter(TopDownAnalysisParameters.class);
generator.addPublicParameter(BindingTrace.class); generator.addPublicParameter(BindingTrace.class);
generator.addParameter(ModuleDescriptor.class); generator.addParameter(ModuleDescriptorImpl.class);
} }
private static void generateMacroInjector() throws IOException { private static void generateMacroInjector() throws IOException {
@@ -181,8 +185,8 @@ public class GenerateInjectors {
new GivenExpression("new org.jetbrains.jet.lang.resolve.BindingTraceContext()")); new GivenExpression("new org.jetbrains.jet.lang.resolve.BindingTraceContext()"));
generator.addField(JavaBridgeConfiguration.class); generator.addField(JavaBridgeConfiguration.class);
generator.addPublicField(PsiClassFinderImpl.class); generator.addPublicField(PsiClassFinderImpl.class);
generator.addField(false, ModuleDescriptor.class, null, generator.addField(false, ModuleDescriptorImpl.class, null,
new GivenExpression("new org.jetbrains.jet.lang.descriptors.ModuleDescriptor(" + new GivenExpression("new org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl(" +
"org.jetbrains.jet.lang.resolve.name.Name.special(\"<dummy>\"))")); "org.jetbrains.jet.lang.resolve.name.Name.special(\"<dummy>\"))"));
// Parameters // Parameters
@@ -34,10 +34,7 @@ import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.di.InjectorForJavaDescriptorResolver; import org.jetbrains.jet.di.InjectorForJavaDescriptorResolver;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.BindingTrace; import org.jetbrains.jet.lang.resolve.BindingTrace;
import org.jetbrains.jet.lang.resolve.DelegatingBindingTrace; import org.jetbrains.jet.lang.resolve.DelegatingBindingTrace;
@@ -119,7 +116,7 @@ public class KotlinSignatureInJavaMarkerProvider implements LineMarkerProvider {
BindingContext bindingContext = declarationsCache.getBindingContext(); BindingContext bindingContext = declarationsCache.getBindingContext();
DelegatingBindingTrace delegatingTrace = new DelegatingBindingTrace(bindingContext, "wrapped context of declarations cache"); DelegatingBindingTrace delegatingTrace = new DelegatingBindingTrace(bindingContext, "wrapped context of declarations cache");
return new InjectorForJavaDescriptorResolver(project, delegatingTrace, new ModuleDescriptor(Name.special("<fake>"))); return new InjectorForJavaDescriptorResolver(project, delegatingTrace, new ModuleDescriptorImpl(Name.special("<fake>")));
} }
@Nullable @Nullable
@@ -47,7 +47,7 @@ import org.jetbrains.jet.codegen.binding.PsiCodegenPredictor;
import org.jetbrains.jet.lang.DefaultModuleConfiguration; import org.jetbrains.jet.lang.DefaultModuleConfiguration;
import org.jetbrains.jet.lang.descriptors.CallableDescriptor; import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.java.JvmClassName; import org.jetbrains.jet.lang.resolve.java.JvmClassName;
import org.jetbrains.jet.lang.resolve.java.KotlinToJavaTypesMap; import org.jetbrains.jet.lang.resolve.java.KotlinToJavaTypesMap;
@@ -224,7 +224,7 @@ public class JetSourceNavigationHelper {
KotlinCodeAnalyzer analyzer = new ResolveSession( KotlinCodeAnalyzer analyzer = new ResolveSession(
project, project,
storageManager, storageManager,
new ModuleDescriptor(Name.special("<library module>")), new ModuleDescriptorImpl(Name.special("<library module>")),
DefaultModuleConfiguration.createStandardConfiguration(), DefaultModuleConfiguration.createStandardConfiguration(),
providerFactory); providerFactory);
@@ -224,7 +224,7 @@ public class BuiltInsReferenceResolver extends AbstractProjectComponent {
private WritableScope memberScope; private WritableScope memberScope;
private FakeJetNamespaceDescriptor() { private FakeJetNamespaceDescriptor() {
super(new NamespaceDescriptorImpl(new ModuleDescriptor(Name.special("<fake_module>")), super(new NamespaceDescriptorImpl(new ModuleDescriptorImpl(Name.special("<fake_module>")),
Collections.<AnnotationDescriptor>emptyList(), Name.special("<root>")), Collections.<AnnotationDescriptor>emptyList(), Name.special("<root>")),
Collections.<AnnotationDescriptor>emptyList(), Collections.<AnnotationDescriptor>emptyList(),
KotlinBuiltIns.getInstance().getBuiltInsPackage().getName()); KotlinBuiltIns.getInstance().getBuiltInsPackage().getName());
@@ -25,7 +25,7 @@ import org.jetbrains.jet.lang.resolve.DescriptorResolver;
import com.intellij.openapi.project.Project; import com.intellij.openapi.project.Project;
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters; import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
import org.jetbrains.jet.lang.resolve.BindingTrace; import org.jetbrains.jet.lang.resolve.BindingTrace;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
import org.jetbrains.jet.lang.ModuleConfiguration; import org.jetbrains.jet.lang.ModuleConfiguration;
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl; import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl;
import org.jetbrains.jet.lang.resolve.NamespaceFactoryImpl; import org.jetbrains.jet.lang.resolve.NamespaceFactoryImpl;
@@ -60,7 +60,7 @@ public class InjectorForTopDownAnalyzerForJs {
private final Project project; private final Project project;
private final TopDownAnalysisParameters topDownAnalysisParameters; private final TopDownAnalysisParameters topDownAnalysisParameters;
private final BindingTrace bindingTrace; private final BindingTrace bindingTrace;
private final ModuleDescriptor moduleDescriptor; private final ModuleDescriptorImpl moduleDescriptor;
private final ModuleConfiguration moduleConfiguration; private final ModuleConfiguration moduleConfiguration;
private DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy; private DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy;
private NamespaceFactoryImpl namespaceFactory; private NamespaceFactoryImpl namespaceFactory;
@@ -85,7 +85,7 @@ public class InjectorForTopDownAnalyzerForJs {
@NotNull Project project, @NotNull Project project,
@NotNull TopDownAnalysisParameters topDownAnalysisParameters, @NotNull TopDownAnalysisParameters topDownAnalysisParameters,
@NotNull BindingTrace bindingTrace, @NotNull BindingTrace bindingTrace,
@NotNull ModuleDescriptor moduleDescriptor, @NotNull ModuleDescriptorImpl moduleDescriptor,
@NotNull ModuleConfiguration moduleConfiguration @NotNull ModuleConfiguration moduleConfiguration
) { ) {
this.topDownAnalyzer = new TopDownAnalyzer(); this.topDownAnalyzer = new TopDownAnalyzer();
@@ -26,7 +26,7 @@ import org.jetbrains.jet.analyzer.AnalyzeExhaust;
import org.jetbrains.jet.analyzer.AnalyzerFacadeForEverything; import org.jetbrains.jet.analyzer.AnalyzerFacadeForEverything;
import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJs; import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJs;
import org.jetbrains.jet.lang.ModuleConfiguration; import org.jetbrains.jet.lang.ModuleConfiguration;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.*; import org.jetbrains.jet.lang.resolve.*;
import org.jetbrains.jet.lang.resolve.lazy.declarations.FileBasedDeclarationProviderFactory; import org.jetbrains.jet.lang.resolve.lazy.declarations.FileBasedDeclarationProviderFactory;
@@ -76,7 +76,7 @@ public final class AnalyzerFacadeForJS {
boolean storeContextForBodiesResolve) { boolean storeContextForBodiesResolve) {
Project project = config.getProject(); Project project = config.getProject();
ModuleDescriptor owner = new ModuleDescriptor(Name.special("<module>")); ModuleDescriptorImpl owner = new ModuleDescriptorImpl(Name.special("<module>"));
Predicate<PsiFile> completely = Predicates.and(notLibFiles(config.getLibFiles()), filesToAnalyzeCompletely); Predicate<PsiFile> completely = Predicates.and(notLibFiles(config.getLibFiles()), filesToAnalyzeCompletely);
@@ -143,7 +143,7 @@ public final class AnalyzerFacadeForJS {
LockBasedStorageManager storageManager = new LockBasedStorageManager(); LockBasedStorageManager storageManager = new LockBasedStorageManager();
FileBasedDeclarationProviderFactory declarationProviderFactory = new FileBasedDeclarationProviderFactory( FileBasedDeclarationProviderFactory declarationProviderFactory = new FileBasedDeclarationProviderFactory(
storageManager, Config.withJsLibAdded(files, config), Predicates.<FqName>alwaysFalse()); storageManager, Config.withJsLibAdded(files, config), Predicates.<FqName>alwaysFalse());
ModuleDescriptor lazyModule = new ModuleDescriptor(Name.special("<lazy module>")); ModuleDescriptorImpl lazyModule = new ModuleDescriptorImpl(Name.special("<lazy module>"));
return new ResolveSession(config.getProject(), storageManager, lazyModule, new JsConfiguration(null), declarationProviderFactory); return new ResolveSession(config.getProject(), storageManager, lazyModule, new JsConfiguration(null), declarationProviderFactory);
} }
} }