From 0fa70b7e471c0bb139b57089a6d1c7efa647c420 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Sat, 16 Nov 2013 14:58:17 +0400 Subject: [PATCH] Move utility method to DescriptorUtils and make it more general --- .../jet/lang/resolve/DescriptorUtils.java | 10 +++++++++- .../lang/resolve/scopes/WritableScopeImpl.java | 16 ++-------------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/DescriptorUtils.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/DescriptorUtils.java index 20d5a6aa559..4dcea843391 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/DescriptorUtils.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/DescriptorUtils.java @@ -238,6 +238,14 @@ public class DescriptorUtils { return isKindOf(descriptor, ClassKind.ENUM_ENTRY); } + public static boolean isObject(@NotNull DeclarationDescriptor classifier) { + if (classifier instanceof ClassDescriptor) { + ClassDescriptor clazz = (ClassDescriptor) classifier; + return clazz.getKind().isObject(); + } + return false; + } + public static boolean isEnumClass(@NotNull DeclarationDescriptor descriptor) { return isKindOf(descriptor, ClassKind.ENUM_CLASS); } @@ -475,4 +483,4 @@ public class DescriptorUtils { assert classObject != null : "Enum class should have a class object: " + enumClass; return classObject.getDefaultType().getMemberScope(); } -} +} \ No newline at end of file diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/scopes/WritableScopeImpl.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/scopes/WritableScopeImpl.java index be9ffc271e9..d5caa387c15 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/scopes/WritableScopeImpl.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/scopes/WritableScopeImpl.java @@ -21,6 +21,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.TestOnly; import org.jetbrains.jet.lang.descriptors.*; +import org.jetbrains.jet.lang.resolve.DescriptorUtils; import org.jetbrains.jet.lang.resolve.name.LabelName; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.types.checker.JetTypeChecker; @@ -309,7 +310,7 @@ public class WritableScopeImpl extends WritableScopeWithImports { public void addClassifierDescriptor(@NotNull ClassifierDescriptor classDescriptor) { checkMayWrite(); - if (isObject(classDescriptor)) { + if (DescriptorUtils.isObject(classDescriptor)) { throw new IllegalStateException("must not be object: " + classDescriptor); } @@ -497,19 +498,6 @@ public class WritableScopeImpl extends WritableScopeWithImports { return declaredDescriptorsAccessibleBySimpleName.values(); } - private static boolean isObject(@NotNull ClassifierDescriptor classifier) { - if (classifier instanceof ClassDescriptor) { - ClassDescriptor clazz = (ClassDescriptor) classifier; - return clazz.getKind().isObject(); - } - else if (classifier instanceof TypeParameterDescriptor) { - return false; - } - else { - throw new IllegalStateException("unknown classifier: " + classifier); - } - } - @TestOnly @Override protected void printAdditionalScopeStructure(@NotNull Printer p) {