ModuleDescriptor interface extracted
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
+3
-3
@@ -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();
|
||||||
|
|||||||
+3
-3
@@ -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();
|
||||||
|
|||||||
+4
-3
@@ -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);
|
||||||
|
|||||||
+2
-1
@@ -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();
|
||||||
|
|||||||
+1
-1
@@ -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
|
||||||
|
|||||||
+2
-5
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user