From debacf05542ce05a5df9cc5d2c7859e9c1baefed Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Thu, 26 Dec 2013 14:21:56 +0400 Subject: [PATCH] Instances of ChainedScope should always have a debugMessage --- .../jetbrains/jet/lang/resolve/TypeHierarchyResolver.java | 2 +- .../jet/lang/resolve/calls/CallExpressionResolver.java | 8 ++++++-- .../org/jetbrains/jet/types/TypeSubstitutorTest.java | 1 + .../jet/lang/resolve/java/scope/JavaFullPackageScope.java | 2 +- .../jetbrains/jet/lang/resolve/scopes/ChainedScope.java | 4 ---- .../src/org/jetbrains/jet/lang/types/TypeUtils.java | 2 +- 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java index 5e676d12ac2..7004fa0ae13 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java @@ -460,7 +460,7 @@ public class TypeHierarchyResolver { context.getPackageFragments().put(file, packageFragment); PackageViewDescriptor packageView = packageFragment.getContainingDeclaration().getPackage(packageFragment.getFqName()); - ChainedScope rootPlusPackageScope = new ChainedScope(packageView, packageView.getMemberScope(), outerScope); + ChainedScope rootPlusPackageScope = new ChainedScope(packageView, "Root scope for " + file, packageView.getMemberScope(), outerScope); WriteThroughScope packageScope = new WriteThroughScope(rootPlusPackageScope, packageFragment.getMemberScope(), new TraceBasedRedeclarationHandler(trace), "package in file " + file.getName()); packageScope.changeLockLevel(WritableScope.LockLevel.BOTH); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java index 4afc37d39d3..fc70b9c3e95 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java @@ -178,7 +178,9 @@ public class CallExpressionResolver { scopes.add(namespace.getMemberScope()); } - JetScope scope = new ChainedScope(classifier, scopes.toArray(new JetScope[scopes.size()])); + JetScope scope = new ChainedScope( + classifier, "Member scope for extended class object type " + classifier, scopes.toArray(new JetScope[scopes.size()]) + ); return new NamespaceType(referencedName, scope, new ExpressionReceiver(expression, classObjectType)); } @@ -213,7 +215,9 @@ public class CallExpressionResolver { JetScope scope; ClassifierDescriptor classifier = context.scope.getClassifier(name); if (classifier instanceof ClassDescriptor) { - scope = new ChainedScope(namespace, namespace.getMemberScope(), getStaticNestedClassesScope((ClassDescriptor) classifier)); + scope = new ChainedScope( + namespace, "Namespace type member scope for " + expression.getText(), namespace.getMemberScope(), getStaticNestedClassesScope((ClassDescriptor) classifier) + ); } else { scope = namespace.getMemberScope(); diff --git a/compiler/tests/org/jetbrains/jet/types/TypeSubstitutorTest.java b/compiler/tests/org/jetbrains/jet/types/TypeSubstitutorTest.java index 07555db0d62..5cac04c4498 100644 --- a/compiler/tests/org/jetbrains/jet/types/TypeSubstitutorTest.java +++ b/compiler/tests/org/jetbrains/jet/types/TypeSubstitutorTest.java @@ -93,6 +93,7 @@ public class TypeSubstitutorTest extends KotlinTestWithEnvironment { } typeParameters.changeLockLevel(WritableScope.LockLevel.READING); return new ChainedScope(module, + "TypeSubstitutorTest::getContextScope()", topLevelDeclarations, typeParameters, contextClass.getDefaultType().getMemberScope(), diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/scope/JavaFullPackageScope.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/scope/JavaFullPackageScope.java index 062a0e421f1..9d12ed6f3f0 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/scope/JavaFullPackageScope.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/scope/JavaFullPackageScope.java @@ -32,7 +32,7 @@ public class JavaFullPackageScope extends ChainedScope implements JavaPackageFra @NotNull JetScope kotlinPackageScope, @NotNull JavaPurePackageScope purePackageScope ) { - super(packageFragment, kotlinPackageScope, purePackageScope); + super(packageFragment, "JavaFullPackageScope", kotlinPackageScope, purePackageScope); this.purePackageScope = purePackageScope; } diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/scopes/ChainedScope.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/scopes/ChainedScope.java index 5ce29f76582..67dcc63485f 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/scopes/ChainedScope.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/scopes/ChainedScope.java @@ -37,10 +37,6 @@ public class ChainedScope implements JetScope { private Collection allDescriptors; private List implicitReceiverHierarchy; - public ChainedScope(DeclarationDescriptor containingDeclaration, JetScope... scopes) { - this(containingDeclaration, "Untitled chained scope", scopes); - } - public ChainedScope(DeclarationDescriptor containingDeclaration, String debugName, JetScope... scopes) { this.containingDeclaration = containingDeclaration; scopeChain = scopes.clone(); diff --git a/core/descriptors/src/org/jetbrains/jet/lang/types/TypeUtils.java b/core/descriptors/src/org/jetbrains/jet/lang/types/TypeUtils.java index 98642eeb720..586e16b89a2 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/types/TypeUtils.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/types/TypeUtils.java @@ -215,7 +215,7 @@ public class TypeUtils { constructor, allNullable, Collections.emptyList(), - new ChainedScope(null, scopes)); // TODO : check intersectibility, don't use a chanied scope + new ChainedScope(null, "member scope for intersection type " + constructor, scopes)); // TODO : check intersectibility, don't use a chanied scope } private static class TypeUnifier {