Get rid of MutableClassDescriptorLite.isStatic()
isStatic() is now precisely !isInner()
This commit is contained in:
+1
-22
@@ -91,23 +91,6 @@ public abstract class MutableClassDescriptorLite extends ClassDescriptorBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
private static boolean isStatic(ClassDescriptor declarationClassDescriptor) {
|
||||
if (declarationClassDescriptor.getKind() == ClassKind.ENUM_CLASS) {
|
||||
return true;
|
||||
}
|
||||
DeclarationDescriptor containingDescriptor = declarationClassDescriptor.getContainingDeclaration();
|
||||
if (containingDescriptor instanceof NamespaceDescriptor) {
|
||||
return true;
|
||||
}
|
||||
else if (containingDescriptor instanceof ClassDescriptor) {
|
||||
ClassDescriptor containingClassDescriptor = (ClassDescriptor) containingDescriptor;
|
||||
return containingClassDescriptor.getKind().isObject();
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public TypeConstructor getTypeConstructor() {
|
||||
@@ -294,7 +277,7 @@ public abstract class MutableClassDescriptorLite extends ClassDescriptorBase {
|
||||
|
||||
@Override
|
||||
public ClassObjectStatus setClassObjectDescriptor(@NotNull MutableClassDescriptorLite classObjectDescriptor) {
|
||||
if (getKind().isObject()) {
|
||||
if (getKind().isObject() || isInner()) {
|
||||
return ClassObjectStatus.NOT_ALLOWED;
|
||||
}
|
||||
|
||||
@@ -302,10 +285,6 @@ public abstract class MutableClassDescriptorLite extends ClassDescriptorBase {
|
||||
return ClassObjectStatus.DUPLICATE;
|
||||
}
|
||||
|
||||
if (!isStatic(MutableClassDescriptorLite.this)) {
|
||||
return ClassObjectStatus.NOT_ALLOWED;
|
||||
}
|
||||
|
||||
assert classObjectDescriptor.getKind() == ClassKind.CLASS_OBJECT;
|
||||
MutableClassDescriptorLite.this.classObjectDescriptor = classObjectDescriptor;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// http://youtrack.jetbrains.net/issue/KT-449
|
||||
|
||||
class A {
|
||||
class B {
|
||||
inner class B {
|
||||
<!CLASS_OBJECT_NOT_ALLOWED!>class object { }<!>
|
||||
}
|
||||
}
|
||||
@@ -18,3 +18,8 @@ class B {
|
||||
}
|
||||
}
|
||||
|
||||
class C {
|
||||
class D {
|
||||
class object { }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user