LTDA: Don't store illegal 'inner' modifier in descriptors
This commit is contained in:
committed by
Nikolay Krasko
parent
f2b6ea29c9
commit
0f852efb54
@@ -154,7 +154,7 @@ public class ModifiersChecker {
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isIllegalInner(@NotNull DeclarationDescriptor descriptor) {
|
||||
public static boolean isIllegalInner(@NotNull DeclarationDescriptor descriptor) {
|
||||
if (!(descriptor instanceof ClassDescriptor)) return true;
|
||||
ClassDescriptor classDescriptor = (ClassDescriptor) descriptor;
|
||||
if (classDescriptor.getKind() != ClassKind.CLASS) return true;
|
||||
|
||||
+2
-1
@@ -34,6 +34,7 @@ import org.jetbrains.jet.lang.descriptors.impl.ClassDescriptorBase;
|
||||
import org.jetbrains.jet.lang.psi.*;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.resolve.ModifiersChecker;
|
||||
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.ForceResolveUtil;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.LazyEntity;
|
||||
@@ -132,7 +133,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
|
||||
this.visibility = isSyntheticClassObject(this)
|
||||
? DescriptorUtils.getSyntheticClassObjectVisibility()
|
||||
: resolveVisibilityFromModifiers(modifierList, getDefaultClassVisibility(this));
|
||||
this.isInner = isInnerClass(modifierList);
|
||||
this.isInner = isInnerClass(modifierList) && !ModifiersChecker.isIllegalInner(this);
|
||||
|
||||
StorageManager storageManager = resolveSession.getStorageManager();
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ internal final enum class E : kotlin.Enum<E> {
|
||||
}
|
||||
}
|
||||
|
||||
public abstract enum entry ABSTRACT : E {
|
||||
public enum entry ABSTRACT : E {
|
||||
private constructor ABSTRACT()
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: E): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
@@ -123,7 +123,7 @@ internal final enum class E : kotlin.Enum<E> {
|
||||
}
|
||||
}
|
||||
|
||||
public open enum entry OPEN : E {
|
||||
public enum entry OPEN : E {
|
||||
private constructor OPEN()
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: E): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
@@ -143,7 +143,7 @@ internal final enum class E : kotlin.Enum<E> {
|
||||
}
|
||||
}
|
||||
|
||||
public open enum entry OVERRIDE : E {
|
||||
public enum entry OVERRIDE : E {
|
||||
private constructor OVERRIDE()
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: E): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
|
||||
@@ -4,14 +4,14 @@ internal val R: kotlin.Any
|
||||
internal val prop: kotlin.Int = 42
|
||||
internal fun foo(): kotlin.Unit
|
||||
|
||||
internal final inner class A {
|
||||
internal final class A {
|
||||
public constructor A()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal inner trait B {
|
||||
internal trait B {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
@@ -51,7 +51,7 @@ internal final class D {
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal inner trait F {
|
||||
internal trait F {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
@@ -71,7 +71,7 @@ internal final class D {
|
||||
}
|
||||
}
|
||||
|
||||
internal final inner enum class R : kotlin.Enum<D.R> {
|
||||
internal final enum class R : kotlin.Enum<D.R> {
|
||||
private constructor R()
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: D.R): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
@@ -85,7 +85,7 @@ internal final class D {
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<D.R>
|
||||
}
|
||||
|
||||
internal final inner annotation class S : kotlin.Annotation {
|
||||
internal final annotation class S : kotlin.Annotation {
|
||||
public constructor S()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
@@ -146,7 +146,7 @@ internal trait K {
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
internal final inner class L {
|
||||
internal final class L {
|
||||
public constructor L()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
|
||||
Reference in New Issue
Block a user