NamespaceLikeBuilder → PackageLikeBuilder.
This commit is contained in:
@@ -45,7 +45,7 @@ import org.jetbrains.jet.config.CompilerConfiguration;
|
|||||||
import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm;
|
import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm;
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
||||||
import org.jetbrains.jet.lang.descriptors.ScriptDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ScriptDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.NamespaceLikeBuilderDummy;
|
import org.jetbrains.jet.lang.descriptors.impl.PackageLikeBuilderDummy;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
||||||
import org.jetbrains.jet.lang.psi.JetScript;
|
import org.jetbrains.jet.lang.psi.JetScript;
|
||||||
@@ -300,7 +300,7 @@ public class ReplInterpreter {
|
|||||||
|
|
||||||
// dummy builder is used because "root" is module descriptor,
|
// dummy builder is used because "root" is module descriptor,
|
||||||
// namespaces added to module explicitly in
|
// namespaces added to module explicitly in
|
||||||
injector.getTopDownAnalyzer().doProcess(scope, new NamespaceLikeBuilderDummy(), Collections.singletonList(psiFile));
|
injector.getTopDownAnalyzer().doProcess(scope, new PackageLikeBuilderDummy(), Collections.singletonList(psiFile));
|
||||||
|
|
||||||
boolean hasErrors = AnalyzerWithCompilerReport.reportDiagnostics(trace.getBindingContext(), messageCollector);
|
boolean hasErrors = AnalyzerWithCompilerReport.reportDiagnostics(trace.getBindingContext(), messageCollector);
|
||||||
if (hasErrors) {
|
if (hasErrors) {
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import org.jetbrains.jet.lang.descriptors.*;
|
|||||||
import org.jetbrains.jet.lang.descriptors.impl.MutableClassDescriptor;
|
import org.jetbrains.jet.lang.descriptors.impl.MutableClassDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.MutableClassDescriptorLite;
|
import org.jetbrains.jet.lang.descriptors.impl.MutableClassDescriptorLite;
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.MutablePackageFragmentDescriptor;
|
import org.jetbrains.jet.lang.descriptors.impl.MutablePackageFragmentDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.NamespaceLikeBuilder;
|
import org.jetbrains.jet.lang.descriptors.impl.PackageLikeBuilder;
|
||||||
import org.jetbrains.jet.lang.psi.*;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||||
@@ -164,9 +164,9 @@ public class DeclarationResolver {
|
|||||||
for (Map.Entry<JetFile, WritableScope> entry : context.getNamespaceScopes().entrySet()) {
|
for (Map.Entry<JetFile, WritableScope> entry : context.getNamespaceScopes().entrySet()) {
|
||||||
JetFile namespace = entry.getKey();
|
JetFile namespace = entry.getKey();
|
||||||
WritableScope namespaceScope = entry.getValue();
|
WritableScope namespaceScope = entry.getValue();
|
||||||
NamespaceLikeBuilder namespaceDescriptor = context.getPackageFragments().get(namespace).getBuilder();
|
PackageLikeBuilder packageBuilder = context.getPackageFragments().get(namespace).getBuilder();
|
||||||
|
|
||||||
resolveFunctionAndPropertyHeaders(namespace.getDeclarations(), namespaceScope, namespaceScope, namespaceScope, namespaceDescriptor);
|
resolveFunctionAndPropertyHeaders(namespace.getDeclarations(), namespaceScope, namespaceScope, namespaceScope, packageBuilder);
|
||||||
}
|
}
|
||||||
for (Map.Entry<JetClassOrObject, MutableClassDescriptor> entry : context.getClasses().entrySet()) {
|
for (Map.Entry<JetClassOrObject, MutableClassDescriptor> entry : context.getClasses().entrySet()) {
|
||||||
JetClassOrObject classOrObject = entry.getKey();
|
JetClassOrObject classOrObject = entry.getKey();
|
||||||
@@ -193,20 +193,20 @@ public class DeclarationResolver {
|
|||||||
@NotNull final JetScope scopeForFunctions,
|
@NotNull final JetScope scopeForFunctions,
|
||||||
@NotNull final JetScope scopeForPropertyInitializers,
|
@NotNull final JetScope scopeForPropertyInitializers,
|
||||||
@NotNull final JetScope scopeForPropertyAccessors,
|
@NotNull final JetScope scopeForPropertyAccessors,
|
||||||
@NotNull final NamespaceLikeBuilder namespaceLike)
|
@NotNull final PackageLikeBuilder packageLike)
|
||||||
{
|
{
|
||||||
for (JetDeclaration declaration : declarations) {
|
for (JetDeclaration declaration : declarations) {
|
||||||
declaration.accept(new JetVisitorVoid() {
|
declaration.accept(new JetVisitorVoid() {
|
||||||
@Override
|
@Override
|
||||||
public void visitNamedFunction(@NotNull JetNamedFunction function) {
|
public void visitNamedFunction(@NotNull JetNamedFunction function) {
|
||||||
SimpleFunctionDescriptor functionDescriptor = descriptorResolver.resolveFunctionDescriptor(
|
SimpleFunctionDescriptor functionDescriptor = descriptorResolver.resolveFunctionDescriptor(
|
||||||
namespaceLike.getOwnerForChildren(),
|
packageLike.getOwnerForChildren(),
|
||||||
scopeForFunctions,
|
scopeForFunctions,
|
||||||
function,
|
function,
|
||||||
trace,
|
trace,
|
||||||
context.getOuterDataFlowInfo()
|
context.getOuterDataFlowInfo()
|
||||||
);
|
);
|
||||||
namespaceLike.addFunctionDescriptor(functionDescriptor);
|
packageLike.addFunctionDescriptor(functionDescriptor);
|
||||||
context.getFunctions().put(function, functionDescriptor);
|
context.getFunctions().put(function, functionDescriptor);
|
||||||
context.registerDeclaringScope(function, scopeForFunctions);
|
context.registerDeclaringScope(function, scopeForFunctions);
|
||||||
}
|
}
|
||||||
@@ -214,12 +214,12 @@ public class DeclarationResolver {
|
|||||||
@Override
|
@Override
|
||||||
public void visitProperty(@NotNull JetProperty property) {
|
public void visitProperty(@NotNull JetProperty property) {
|
||||||
PropertyDescriptor propertyDescriptor = descriptorResolver.resolvePropertyDescriptor(
|
PropertyDescriptor propertyDescriptor = descriptorResolver.resolvePropertyDescriptor(
|
||||||
namespaceLike.getOwnerForChildren(),
|
packageLike.getOwnerForChildren(),
|
||||||
scopeForPropertyInitializers,
|
scopeForPropertyInitializers,
|
||||||
property,
|
property,
|
||||||
trace,
|
trace,
|
||||||
context.getOuterDataFlowInfo());
|
context.getOuterDataFlowInfo());
|
||||||
namespaceLike.addPropertyDescriptor(propertyDescriptor);
|
packageLike.addPropertyDescriptor(propertyDescriptor);
|
||||||
context.getProperties().put(property, propertyDescriptor);
|
context.getProperties().put(property, propertyDescriptor);
|
||||||
context.registerDeclaringScope(property, scopeForPropertyInitializers);
|
context.registerDeclaringScope(property, scopeForPropertyInitializers);
|
||||||
JetPropertyAccessor getter = property.getGetter();
|
JetPropertyAccessor getter = property.getGetter();
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ public class TopDownAnalyzer {
|
|||||||
|
|
||||||
public void doProcess(
|
public void doProcess(
|
||||||
JetScope outerScope,
|
JetScope outerScope,
|
||||||
NamespaceLikeBuilder owner,
|
PackageLikeBuilder owner,
|
||||||
Collection<? extends PsiElement> declarations) {
|
Collection<? extends PsiElement> declarations) {
|
||||||
// context.enableDebugOutput();
|
// context.enableDebugOutput();
|
||||||
context.debug("Enter");
|
context.debug("Enter");
|
||||||
@@ -175,7 +175,7 @@ public class TopDownAnalyzer {
|
|||||||
|
|
||||||
injector.getTopDownAnalysisContext().setOuterDataFlowInfo(context.dataFlowInfo);
|
injector.getTopDownAnalysisContext().setOuterDataFlowInfo(context.dataFlowInfo);
|
||||||
|
|
||||||
injector.getTopDownAnalyzer().doProcess(context.scope, new NamespaceLikeBuilder() {
|
injector.getTopDownAnalyzer().doProcess(context.scope, new PackageLikeBuilder() {
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
@@ -220,7 +220,7 @@ public class TopDownAnalyzer {
|
|||||||
|
|
||||||
// dummy builder is used because "root" is module descriptor,
|
// dummy builder is used because "root" is module descriptor,
|
||||||
// namespaces added to module explicitly in
|
// namespaces added to module explicitly in
|
||||||
doProcess(rootPackage.getMemberScope(), new NamespaceLikeBuilderDummy(), files);
|
doProcess(rootPackage.getMemberScope(), new PackageLikeBuilderDummy(), files);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ public class TypeHierarchyResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void process(
|
public void process(
|
||||||
@NotNull JetScope outerScope, @NotNull NamespaceLikeBuilder owner,
|
@NotNull JetScope outerScope, @NotNull PackageLikeBuilder owner,
|
||||||
@NotNull Collection<? extends PsiElement> declarations
|
@NotNull Collection<? extends PsiElement> declarations
|
||||||
) {
|
) {
|
||||||
|
|
||||||
@@ -148,7 +148,7 @@ public class TypeHierarchyResolver {
|
|||||||
@NotNull
|
@NotNull
|
||||||
private Collection<JetDeclarationContainer> collectNamespacesAndClassifiers(
|
private Collection<JetDeclarationContainer> collectNamespacesAndClassifiers(
|
||||||
@NotNull JetScope outerScope,
|
@NotNull JetScope outerScope,
|
||||||
@NotNull NamespaceLikeBuilder owner,
|
@NotNull PackageLikeBuilder owner,
|
||||||
@NotNull Iterable<? extends PsiElement> declarations
|
@NotNull Iterable<? extends PsiElement> declarations
|
||||||
) {
|
) {
|
||||||
Collection<JetDeclarationContainer> forDeferredResolve = new ArrayList<JetDeclarationContainer>();
|
Collection<JetDeclarationContainer> forDeferredResolve = new ArrayList<JetDeclarationContainer>();
|
||||||
@@ -442,11 +442,11 @@ public class TypeHierarchyResolver {
|
|||||||
|
|
||||||
private class ClassifierCollector extends JetVisitorVoid {
|
private class ClassifierCollector extends JetVisitorVoid {
|
||||||
private final JetScope outerScope;
|
private final JetScope outerScope;
|
||||||
private final NamespaceLikeBuilder owner;
|
private final PackageLikeBuilder owner;
|
||||||
private final Collection<JetDeclarationContainer> forDeferredResolve;
|
private final Collection<JetDeclarationContainer> forDeferredResolve;
|
||||||
|
|
||||||
public ClassifierCollector(@NotNull JetScope outerScope,
|
public ClassifierCollector(@NotNull JetScope outerScope,
|
||||||
@NotNull NamespaceLikeBuilder owner,
|
@NotNull PackageLikeBuilder owner,
|
||||||
@NotNull Collection<JetDeclarationContainer> forDeferredResolve
|
@NotNull Collection<JetDeclarationContainer> forDeferredResolve
|
||||||
) {
|
) {
|
||||||
this.outerScope = outerScope;
|
this.outerScope = outerScope;
|
||||||
@@ -520,9 +520,9 @@ public class TypeHierarchyResolver {
|
|||||||
MutableClassDescriptor classObjectDescriptor =
|
MutableClassDescriptor classObjectDescriptor =
|
||||||
createClassDescriptorForSingleton(objectDeclaration, getClassObjectName(container.getName()), ClassKind.CLASS_OBJECT);
|
createClassDescriptorForSingleton(objectDeclaration, getClassObjectName(container.getName()), ClassKind.CLASS_OBJECT);
|
||||||
|
|
||||||
NamespaceLikeBuilder.ClassObjectStatus status =
|
PackageLikeBuilder.ClassObjectStatus status =
|
||||||
isEnumEntry(container) || isObject(container) ?
|
isEnumEntry(container) || isObject(container) ?
|
||||||
NamespaceLikeBuilder.ClassObjectStatus.NOT_ALLOWED :
|
PackageLikeBuilder.ClassObjectStatus.NOT_ALLOWED :
|
||||||
owner.setClassObjectDescriptor(classObjectDescriptor);
|
owner.setClassObjectDescriptor(classObjectDescriptor);
|
||||||
|
|
||||||
switch (status) {
|
switch (status) {
|
||||||
|
|||||||
+4
-4
@@ -173,13 +173,13 @@ public class MutableClassDescriptor extends MutableClassDescriptorLite {
|
|||||||
getWritableScopeForInitializers().changeLockLevel(WritableScope.LockLevel.READING);
|
getWritableScopeForInitializers().changeLockLevel(WritableScope.LockLevel.READING);
|
||||||
}
|
}
|
||||||
|
|
||||||
private NamespaceLikeBuilder builder = null;
|
private PackageLikeBuilder builder = null;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NamespaceLikeBuilder getBuilder() {
|
public PackageLikeBuilder getBuilder() {
|
||||||
if (builder == null) {
|
if (builder == null) {
|
||||||
final NamespaceLikeBuilder superBuilder = super.getBuilder();
|
final PackageLikeBuilder superBuilder = super.getBuilder();
|
||||||
builder = new NamespaceLikeBuilderDummy() {
|
builder = new PackageLikeBuilderDummy() {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public DeclarationDescriptor getOwnerForChildren() {
|
public DeclarationDescriptor getOwnerForChildren() {
|
||||||
|
|||||||
+3
-3
@@ -189,10 +189,10 @@ public abstract class MutableClassDescriptorLite extends ClassDescriptorBase {
|
|||||||
this.annotations = annotations;
|
this.annotations = annotations;
|
||||||
}
|
}
|
||||||
|
|
||||||
private NamespaceLikeBuilder builder = null;
|
private PackageLikeBuilder builder = null;
|
||||||
public NamespaceLikeBuilder getBuilder() {
|
public PackageLikeBuilder getBuilder() {
|
||||||
if (builder == null) {
|
if (builder == null) {
|
||||||
builder = new NamespaceLikeBuilderDummy() {
|
builder = new PackageLikeBuilderDummy() {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public DeclarationDescriptor getOwnerForChildren() {
|
public DeclarationDescriptor getOwnerForChildren() {
|
||||||
|
|||||||
+3
-3
@@ -35,7 +35,7 @@ public class MutablePackageFragmentDescriptor extends DeclarationDescriptorImpl
|
|||||||
private final ModuleDescriptor module;
|
private final ModuleDescriptor module;
|
||||||
private final FqName fqName;
|
private final FqName fqName;
|
||||||
private final WritableScope scope;
|
private final WritableScope scope;
|
||||||
private final NamespaceLikeBuilder builder;
|
private final PackageLikeBuilder builder;
|
||||||
|
|
||||||
public MutablePackageFragmentDescriptor(
|
public MutablePackageFragmentDescriptor(
|
||||||
@NotNull PackageFragmentProvider provider,
|
@NotNull PackageFragmentProvider provider,
|
||||||
@@ -49,7 +49,7 @@ public class MutablePackageFragmentDescriptor extends DeclarationDescriptorImpl
|
|||||||
|
|
||||||
scope = new WritableScopeImpl(JetScope.EMPTY, this, RedeclarationHandler.DO_NOTHING, "Members of " + fqName + " in " + module);
|
scope = new WritableScopeImpl(JetScope.EMPTY, this, RedeclarationHandler.DO_NOTHING, "Members of " + fqName + " in " + module);
|
||||||
scope.changeLockLevel(WritableScope.LockLevel.BOTH);
|
scope.changeLockLevel(WritableScope.LockLevel.BOTH);
|
||||||
builder = new ScopeBasedNamespaceLikeBuilder(this, scope);
|
builder = new ScopeBasedPackageLikeBuilder(this, scope);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -88,7 +88,7 @@ public class MutablePackageFragmentDescriptor extends DeclarationDescriptorImpl
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public NamespaceLikeBuilder getBuilder() {
|
public PackageLikeBuilder getBuilder() {
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -21,7 +21,7 @@ import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
|||||||
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
|
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor;
|
import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor;
|
||||||
|
|
||||||
public interface NamespaceLikeBuilder {
|
public interface PackageLikeBuilder {
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
DeclarationDescriptor getOwnerForChildren();
|
DeclarationDescriptor getOwnerForChildren();
|
||||||
+1
-1
@@ -21,7 +21,7 @@ import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
|||||||
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
|
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor;
|
import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor;
|
||||||
|
|
||||||
public class NamespaceLikeBuilderDummy implements NamespaceLikeBuilder {
|
public class PackageLikeBuilderDummy implements PackageLikeBuilder {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public DeclarationDescriptor getOwnerForChildren() {
|
public DeclarationDescriptor getOwnerForChildren() {
|
||||||
+2
-2
@@ -22,11 +22,11 @@ import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
|
|||||||
import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor;
|
import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor;
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
|
import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
|
||||||
|
|
||||||
public class ScopeBasedNamespaceLikeBuilder implements NamespaceLikeBuilder {
|
public class ScopeBasedPackageLikeBuilder implements PackageLikeBuilder {
|
||||||
private final DeclarationDescriptor containingDeclaration;
|
private final DeclarationDescriptor containingDeclaration;
|
||||||
private final WritableScope scope;
|
private final WritableScope scope;
|
||||||
|
|
||||||
ScopeBasedNamespaceLikeBuilder(
|
ScopeBasedPackageLikeBuilder(
|
||||||
@NotNull DeclarationDescriptor containingDeclaration,
|
@NotNull DeclarationDescriptor containingDeclaration,
|
||||||
@NotNull WritableScope scope
|
@NotNull WritableScope scope
|
||||||
) {
|
) {
|
||||||
Reference in New Issue
Block a user