Refactor: Extract isObject with a new semantic

This commit is contained in:
Pavel V. Talanov
2015-03-04 14:20:49 +03:00
parent fc6f4208ec
commit fa590a5b83
4 changed files with 8 additions and 4 deletions
@@ -243,7 +243,7 @@ public class ModifiersChecker {
if (DescriptorUtils.isTrait(containingDeclaration)) { if (DescriptorUtils.isTrait(containingDeclaration)) {
return InnerModifierCheckResult.IN_TRAIT; return InnerModifierCheckResult.IN_TRAIT;
} }
else if (DescriptorUtils.isDefaultObject(containingDeclaration) || DescriptorUtils.isNonDefaultObject(containingDeclaration)) { else if (DescriptorUtils.isObject(containingDeclaration)) {
return InnerModifierCheckResult.IN_OBJECT; return InnerModifierCheckResult.IN_OBJECT;
} }
else { else {
@@ -48,8 +48,7 @@ public class ConstantExpressionEvaluator private (val trace: BindingTrace) : Jet
if (descriptor.isVar()) { if (descriptor.isVar()) {
return false return false
} }
if (DescriptorUtils.isNonDefaultObject(descriptor.getContainingDeclaration()) || if (DescriptorUtils.isObject(descriptor.getContainingDeclaration()) ||
DescriptorUtils.isDefaultObject(descriptor.getContainingDeclaration()) ||
DescriptorUtils.isStaticDeclaration(descriptor)) { DescriptorUtils.isStaticDeclaration(descriptor)) {
val returnType = descriptor.getType() val returnType = descriptor.getType()
return KotlinBuiltIns.isPrimitiveType(returnType) || KotlinBuiltIns.isString(returnType) return KotlinBuiltIns.isPrimitiveType(returnType) || KotlinBuiltIns.isString(returnType)
@@ -49,6 +49,7 @@ import java.util.jar.JarFile;
import java.util.zip.ZipOutputStream; import java.util.zip.ZipOutputStream;
import static org.jetbrains.kotlin.resolve.DescriptorUtils.isNonDefaultObject; 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; import static org.jetbrains.kotlin.test.util.RecursiveDescriptorComparator.validateAndCompareDescriptorWithFile;
public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir { public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir {
@@ -144,7 +145,7 @@ public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir {
assertEquals(allDescriptors.toString(), 2, allDescriptors.size()); assertEquals(allDescriptors.toString(), 2, allDescriptors.size());
for (DeclarationDescriptor descriptor : allDescriptors) { for (DeclarationDescriptor descriptor : allDescriptors) {
assertTrue("Wrong name: " + descriptor, descriptor.getName().asString().equals("Lol")); 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));
} }
} }
@@ -252,6 +252,10 @@ public class DescriptorUtils {
return isKindOf(descriptor, ClassKind.OBJECT); return isKindOf(descriptor, ClassKind.OBJECT);
} }
public static boolean isObject(@NotNull DeclarationDescriptor descriptor) {
return isDefaultObject(descriptor) || isNonDefaultObject(descriptor);
}
public static boolean isEnumEntry(@NotNull DeclarationDescriptor descriptor) { public static boolean isEnumEntry(@NotNull DeclarationDescriptor descriptor) {
return isKindOf(descriptor, ClassKind.ENUM_ENTRY); return isKindOf(descriptor, ClassKind.ENUM_ENTRY);
} }