NamespaceLikeBuilder → PackageLikeBuilder.

This commit is contained in:
Evgeny Gerashchenko
2014-01-09 23:26:15 +04:00
parent 2189fce64b
commit 1f615d08c7
10 changed files with 33 additions and 33 deletions
@@ -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) {
@@ -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() {
@@ -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() {
@@ -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;
} }
} }
@@ -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();
@@ -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() {
@@ -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
) { ) {