From fa590a5b839ba420861c7cf465f3f328e1aa90bb Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Wed, 4 Mar 2015 14:20:49 +0300 Subject: [PATCH] Refactor: Extract isObject with a new semantic --- .../src/org/jetbrains/kotlin/resolve/ModifiersChecker.java | 2 +- .../resolve/constants/evaluate/ConstantExpressionEvaluator.kt | 3 +-- .../jvm/compiler/CompileKotlinAgainstCustomBinariesTest.java | 3 ++- .../src/org/jetbrains/kotlin/resolve/DescriptorUtils.java | 4 ++++ 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModifiersChecker.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModifiersChecker.java index cec4468f89d..3b0f305ad16 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModifiersChecker.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModifiersChecker.java @@ -243,7 +243,7 @@ public class ModifiersChecker { if (DescriptorUtils.isTrait(containingDeclaration)) { return InnerModifierCheckResult.IN_TRAIT; } - else if (DescriptorUtils.isDefaultObject(containingDeclaration) || DescriptorUtils.isNonDefaultObject(containingDeclaration)) { + else if (DescriptorUtils.isObject(containingDeclaration)) { return InnerModifierCheckResult.IN_OBJECT; } else { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/evaluate/ConstantExpressionEvaluator.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/evaluate/ConstantExpressionEvaluator.kt index 21118ee99d0..27c6ea20cba 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/evaluate/ConstantExpressionEvaluator.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/evaluate/ConstantExpressionEvaluator.kt @@ -48,8 +48,7 @@ public class ConstantExpressionEvaluator private (val trace: BindingTrace) : Jet if (descriptor.isVar()) { return false } - if (DescriptorUtils.isNonDefaultObject(descriptor.getContainingDeclaration()) || - DescriptorUtils.isDefaultObject(descriptor.getContainingDeclaration()) || + if (DescriptorUtils.isObject(descriptor.getContainingDeclaration()) || DescriptorUtils.isStaticDeclaration(descriptor)) { val returnType = descriptor.getType() return KotlinBuiltIns.isPrimitiveType(returnType) || KotlinBuiltIns.isString(returnType) diff --git a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.java b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.java index 6e3b385b3b7..aad590c056b 100644 --- a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.java +++ b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.java @@ -49,6 +49,7 @@ import java.util.jar.JarFile; import java.util.zip.ZipOutputStream; import static org.jetbrains.kotlin.resolve.DescriptorUtils.isNonDefaultObject; +import static org.jetbrains.kotlin.resolve.DescriptorUtils.isObject; import static org.jetbrains.kotlin.test.util.RecursiveDescriptorComparator.validateAndCompareDescriptorWithFile; public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir { @@ -144,7 +145,7 @@ public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir { assertEquals(allDescriptors.toString(), 2, allDescriptors.size()); for (DeclarationDescriptor descriptor : allDescriptors) { assertTrue("Wrong name: " + descriptor, descriptor.getName().asString().equals("Lol")); - assertTrue("Should be an object: " + descriptor, isNonDefaultObject(descriptor)); + assertTrue("Should be an object: " + descriptor, isObject(descriptor)); } } diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.java b/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.java index 5843c73fa02..4725ab786ea 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.java +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.java @@ -252,6 +252,10 @@ public class DescriptorUtils { return isKindOf(descriptor, ClassKind.OBJECT); } + public static boolean isObject(@NotNull DeclarationDescriptor descriptor) { + return isDefaultObject(descriptor) || isNonDefaultObject(descriptor); + } + public static boolean isEnumEntry(@NotNull DeclarationDescriptor descriptor) { return isKindOf(descriptor, ClassKind.ENUM_ENTRY); }