New util method for anonymous type

This commit is contained in:
Mikhael Bogdanov
2013-02-20 15:05:34 +04:00
parent a3eae3d5c1
commit d8ea6a3a59
2 changed files with 6 additions and 2 deletions
@@ -1027,8 +1027,7 @@ public class DescriptorResolver {
@NotNull final BindingTrace trace @NotNull final BindingTrace trace
) { ) {
ClassifierDescriptor classifierDescriptor = type.getConstructor().getDeclarationDescriptor(); ClassifierDescriptor classifierDescriptor = type.getConstructor().getDeclarationDescriptor();
boolean isAnonymous = classifierDescriptor != null && classifierDescriptor.getName().isSpecial() && !ErrorUtils.isErrorType(type); if (!DescriptorUtils.isAnonymous(classifierDescriptor)) {
if (!isAnonymous) {
return type; return type;
} }
@@ -258,6 +258,11 @@ public class DescriptorUtils {
&& ((ClassDescriptor) descriptor).getKind() == ClassKind.CLASS_OBJECT; && ((ClassDescriptor) descriptor).getKind() == ClassKind.CLASS_OBJECT;
} }
public static boolean isAnonymous(@Nullable ClassifierDescriptor descriptor) {
return descriptor instanceof ClassDescriptor
&& descriptor.getName().isSpecial() && ((ClassDescriptor)descriptor).getKind() == ClassKind.OBJECT;
}
public static boolean isEnumEntry(@NotNull DeclarationDescriptor descriptor) { public static boolean isEnumEntry(@NotNull DeclarationDescriptor descriptor) {
return descriptor instanceof ClassDescriptor return descriptor instanceof ClassDescriptor
&& ((ClassDescriptor) descriptor).getKind() == ClassKind.ENUM_ENTRY; && ((ClassDescriptor) descriptor).getKind() == ClassKind.ENUM_ENTRY;