[KT-4124] Add diagnostic that reports of local classes. Remove test for diagnostic of nested types
This commit is contained in:
+4
@@ -9,4 +9,8 @@ fun foo() {
|
|||||||
|
|
||||||
<!LOCAL_INTERFACE_NOT_ALLOWED, NON_TOPLEVEL_CLASS_DECLARATION!>interface T<!> {
|
<!LOCAL_INTERFACE_NOT_ALLOWED, NON_TOPLEVEL_CLASS_DECLARATION!>interface T<!> {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
object {
|
||||||
|
inner <!NON_TOPLEVEL_CLASS_DECLARATION!>class B<!>
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
-95
@@ -1,95 +0,0 @@
|
|||||||
class A {
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>class B<!> {
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>class C<!>
|
|
||||||
|
|
||||||
inner <!NON_TOPLEVEL_CLASS_DECLARATION!>class D<!>
|
|
||||||
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>interface T<!> {
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>interface A<!>
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>class B<!>
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {}
|
|
||||||
}
|
|
||||||
|
|
||||||
inner <!NON_TOPLEVEL_CLASS_DECLARATION!>class I<!>
|
|
||||||
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>interface T<!> {
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>interface A<!>
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>class B<!>
|
|
||||||
|
|
||||||
companion object {}
|
|
||||||
}
|
|
||||||
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>enum class E<!> {
|
|
||||||
X, Y;
|
|
||||||
|
|
||||||
companion object {}
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {}
|
|
||||||
}
|
|
||||||
|
|
||||||
interface T {
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>class B<!> {
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>class C<!>
|
|
||||||
|
|
||||||
inner <!NON_TOPLEVEL_CLASS_DECLARATION!>class D<!>
|
|
||||||
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>interface T<!> {
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>interface A<!>
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>class B<!>
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {}
|
|
||||||
}
|
|
||||||
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>interface T<!> {
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>interface A<!>
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>class B<!>
|
|
||||||
|
|
||||||
companion object {}
|
|
||||||
}
|
|
||||||
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>enum class E<!> {
|
|
||||||
X, Y;
|
|
||||||
|
|
||||||
companion object {}
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {}
|
|
||||||
}
|
|
||||||
|
|
||||||
enum class E {
|
|
||||||
X, Y;
|
|
||||||
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>class B<!> {
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>class C<!>
|
|
||||||
|
|
||||||
inner <!NON_TOPLEVEL_CLASS_DECLARATION!>class D<!>
|
|
||||||
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>interface T<!> {
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>interface A<!>
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>class B<!>
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {}
|
|
||||||
}
|
|
||||||
|
|
||||||
inner <!NON_TOPLEVEL_CLASS_DECLARATION!>class I<!>
|
|
||||||
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>interface T<!> {
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>interface A<!>
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>class B<!>
|
|
||||||
|
|
||||||
companion object {}
|
|
||||||
}
|
|
||||||
|
|
||||||
<!NON_TOPLEVEL_CLASS_DECLARATION!>enum class E<!> {
|
|
||||||
X, Y;
|
|
||||||
|
|
||||||
companion object {}
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {}
|
|
||||||
}
|
|
||||||
Vendored
-365
@@ -1,365 +0,0 @@
|
|||||||
package
|
|
||||||
|
|
||||||
public 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
|
|
||||||
|
|
||||||
public final class B {
|
|
||||||
public constructor 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
|
|
||||||
|
|
||||||
public final class C {
|
|
||||||
public constructor C()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
public companion object Companion {
|
|
||||||
private constructor Companion()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
public final inner class D {
|
|
||||||
public constructor D()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface T {
|
|
||||||
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
|
|
||||||
|
|
||||||
public interface 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
|
|
||||||
}
|
|
||||||
|
|
||||||
public final class B {
|
|
||||||
public constructor 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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public companion object Companion {
|
|
||||||
private constructor Companion()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
public final enum class E : kotlin.Enum<A.E> {
|
|
||||||
enum entry X
|
|
||||||
|
|
||||||
enum entry Y
|
|
||||||
|
|
||||||
private constructor E()
|
|
||||||
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
|
||||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
|
||||||
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
|
|
||||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: A.E): kotlin.Int
|
|
||||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
||||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
||||||
|
|
||||||
public companion object Companion {
|
|
||||||
private constructor Companion()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
// Static members
|
|
||||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): A.E
|
|
||||||
public final /*synthesized*/ fun values(): kotlin.Array<A.E>
|
|
||||||
}
|
|
||||||
|
|
||||||
public final inner class I {
|
|
||||||
public constructor I()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface T {
|
|
||||||
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
|
|
||||||
|
|
||||||
public interface 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
|
|
||||||
}
|
|
||||||
|
|
||||||
public final class B {
|
|
||||||
public constructor 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
|
|
||||||
}
|
|
||||||
|
|
||||||
public companion object Companion {
|
|
||||||
private constructor Companion()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public final enum class E : kotlin.Enum<E> {
|
|
||||||
enum entry X
|
|
||||||
|
|
||||||
enum entry Y
|
|
||||||
|
|
||||||
private constructor E()
|
|
||||||
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
|
||||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
|
||||||
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
|
|
||||||
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
|
|
||||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
||||||
|
|
||||||
public final class B {
|
|
||||||
public constructor 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
|
|
||||||
|
|
||||||
public final class C {
|
|
||||||
public constructor C()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
public companion object Companion {
|
|
||||||
private constructor Companion()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
public final inner class D {
|
|
||||||
public constructor D()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface T {
|
|
||||||
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
|
|
||||||
|
|
||||||
public interface 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
|
|
||||||
}
|
|
||||||
|
|
||||||
public final class B {
|
|
||||||
public constructor 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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public companion object Companion {
|
|
||||||
private constructor Companion()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
public final enum class E : kotlin.Enum<E.E> {
|
|
||||||
enum entry X
|
|
||||||
|
|
||||||
enum entry Y
|
|
||||||
|
|
||||||
private constructor E()
|
|
||||||
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
|
||||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
|
||||||
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
|
|
||||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: E.E): kotlin.Int
|
|
||||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
||||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
||||||
|
|
||||||
public companion object Companion {
|
|
||||||
private constructor Companion()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
// Static members
|
|
||||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): E.E
|
|
||||||
public final /*synthesized*/ fun values(): kotlin.Array<E.E>
|
|
||||||
}
|
|
||||||
|
|
||||||
public final inner class I {
|
|
||||||
public constructor I()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface T {
|
|
||||||
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
|
|
||||||
|
|
||||||
public interface 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
|
|
||||||
}
|
|
||||||
|
|
||||||
public final class B {
|
|
||||||
public constructor 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
|
|
||||||
}
|
|
||||||
|
|
||||||
public companion object Companion {
|
|
||||||
private constructor Companion()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Static members
|
|
||||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): E
|
|
||||||
public final /*synthesized*/ fun values(): kotlin.Array<E>
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface T {
|
|
||||||
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
|
|
||||||
|
|
||||||
public final class B {
|
|
||||||
public constructor 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
|
|
||||||
|
|
||||||
public final class C {
|
|
||||||
public constructor C()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
public companion object Companion {
|
|
||||||
private constructor Companion()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
public final inner class D {
|
|
||||||
public constructor D()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface T {
|
|
||||||
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
|
|
||||||
|
|
||||||
public interface 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
|
|
||||||
}
|
|
||||||
|
|
||||||
public final class B {
|
|
||||||
public constructor 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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public companion object Companion {
|
|
||||||
private constructor Companion()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
public final enum class E : kotlin.Enum<T.E> {
|
|
||||||
enum entry X
|
|
||||||
|
|
||||||
enum entry Y
|
|
||||||
|
|
||||||
private constructor E()
|
|
||||||
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
|
||||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
|
||||||
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
|
|
||||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: T.E): kotlin.Int
|
|
||||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
||||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
||||||
|
|
||||||
public companion object Companion {
|
|
||||||
private constructor Companion()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
// Static members
|
|
||||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): T.E
|
|
||||||
public final /*synthesized*/ fun values(): kotlin.Array<T.E>
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface T {
|
|
||||||
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
|
|
||||||
|
|
||||||
public interface 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
|
|
||||||
}
|
|
||||||
|
|
||||||
public final class B {
|
|
||||||
public constructor 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
|
|
||||||
}
|
|
||||||
|
|
||||||
public companion object Companion {
|
|
||||||
private constructor Companion()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -570,11 +570,5 @@ public class DiagnosticsTestWithJsStdLibGenerated extends AbstractDiagnosticsTes
|
|||||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithJsStdLib/unsupportedFeatures/localClassifier.kt");
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithJsStdLib/unsupportedFeatures/localClassifier.kt");
|
||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("nestedInnerClassifier.kt")
|
|
||||||
public void testNestedInnerClassifier() throws Exception {
|
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithJsStdLib/unsupportedFeatures/nestedInnerClassifier.kt");
|
|
||||||
doTest(fileName);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.container.StorageComponentContainer
|
|||||||
import org.jetbrains.kotlin.container.useImpl
|
import org.jetbrains.kotlin.container.useImpl
|
||||||
import org.jetbrains.kotlin.container.useInstance
|
import org.jetbrains.kotlin.container.useInstance
|
||||||
import org.jetbrains.kotlin.js.resolve.diagnostics.JsCallChecker
|
import org.jetbrains.kotlin.js.resolve.diagnostics.JsCallChecker
|
||||||
|
import org.jetbrains.kotlin.js.resolve.diagnostics.LocalClassChecker
|
||||||
import org.jetbrains.kotlin.resolve.IdentifierChecker
|
import org.jetbrains.kotlin.resolve.IdentifierChecker
|
||||||
import org.jetbrains.kotlin.resolve.OverloadFilter
|
import org.jetbrains.kotlin.resolve.OverloadFilter
|
||||||
import org.jetbrains.kotlin.resolve.PlatformConfigurator
|
import org.jetbrains.kotlin.resolve.PlatformConfigurator
|
||||||
@@ -28,7 +29,7 @@ import org.jetbrains.kotlin.types.DynamicTypesAllowed
|
|||||||
|
|
||||||
object JsPlatformConfigurator : PlatformConfigurator(
|
object JsPlatformConfigurator : PlatformConfigurator(
|
||||||
DynamicTypesAllowed(),
|
DynamicTypesAllowed(),
|
||||||
additionalDeclarationCheckers = listOf(NativeInvokeChecker(), NativeGetterChecker(), NativeSetterChecker()),
|
additionalDeclarationCheckers = listOf(NativeInvokeChecker(), NativeGetterChecker(), NativeSetterChecker(), LocalClassChecker()),
|
||||||
additionalCallCheckers = listOf(),
|
additionalCallCheckers = listOf(),
|
||||||
additionalTypeCheckers = listOf(),
|
additionalTypeCheckers = listOf(),
|
||||||
additionalSymbolUsageValidators = listOf(),
|
additionalSymbolUsageValidators = listOf(),
|
||||||
|
|||||||
@@ -0,0 +1,60 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2016 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.js.resolve.diagnostics
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
|
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||||
|
import org.jetbrains.kotlin.diagnostics.DiagnosticSink
|
||||||
|
import org.jetbrains.kotlin.diagnostics.rendering.renderKind
|
||||||
|
import org.jetbrains.kotlin.psi.*
|
||||||
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
|
import org.jetbrains.kotlin.resolve.DeclarationChecker
|
||||||
|
import org.jetbrains.kotlin.resolve.DescriptorUtils.*
|
||||||
|
|
||||||
|
class LocalClassChecker : DeclarationChecker {
|
||||||
|
override fun check(declaration: KtDeclaration, descriptor: DeclarationDescriptor, diagnosticHolder: DiagnosticSink,
|
||||||
|
bindingContext: BindingContext) {
|
||||||
|
if (descriptor !is ClassDescriptor || declaration !is KtNamedDeclaration) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (isAnonymousObject(descriptor) || isObject(descriptor)) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// hack to avoid to get diagnostics when compile kotlin builtins
|
||||||
|
val fqNameUnsafe = getFqName(descriptor)
|
||||||
|
if (fqNameUnsafe.asString().startsWith("kotlin.")) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hasEnclosingFunction(descriptor)) {
|
||||||
|
diagnosticHolder.report(ErrorsJs.NON_TOPLEVEL_CLASS_DECLARATION.on(declaration, descriptor.renderKind()))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun hasEnclosingFunction(descriptor: DeclarationDescriptor?): Boolean {
|
||||||
|
var d = descriptor
|
||||||
|
while (d != null) {
|
||||||
|
if (d is FunctionDescriptor) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
d = d.containingDeclaration
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -545,20 +545,22 @@ public final class StaticContext {
|
|||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public JsExpression apply(@NotNull DeclarationDescriptor descriptor) {
|
public JsExpression apply(@NotNull DeclarationDescriptor descriptor) {
|
||||||
if (isNativeObject(descriptor) || isBuiltin(descriptor)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (!(descriptor instanceof ClassDescriptor)) {
|
if (!(descriptor instanceof ClassDescriptor)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
ClassDescriptor cls = (ClassDescriptor) descriptor;
|
|
||||||
if (cls.getKind() == ClassKind.ENUM_ENTRY || cls.getKind() == ClassKind.OBJECT) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
DeclarationDescriptor container = descriptor.getContainingDeclaration();
|
DeclarationDescriptor container = descriptor.getContainingDeclaration();
|
||||||
if (container == null) {
|
if (container == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isNativeObject(descriptor) || isBuiltin(descriptor)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
ClassDescriptor cls = (ClassDescriptor) descriptor;
|
||||||
|
if (cls.getKind() == ClassKind.ENUM_ENTRY || cls.getKind() == ClassKind.OBJECT) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
JsExpression result = getQualifiedReference(container);
|
JsExpression result = getQualifiedReference(container);
|
||||||
if (DescriptorUtils.isCompanionObject(container)) {
|
if (DescriptorUtils.isCompanionObject(container)) {
|
||||||
result = Namer.getCompanionObjectAccessor(result);
|
result = Namer.getCompanionObjectAccessor(result);
|
||||||
|
|||||||
+19
-18
@@ -119,14 +119,14 @@ var Kotlin = {};
|
|||||||
}
|
}
|
||||||
if (typeof staticProperties !== 'undefined') {
|
if (typeof staticProperties !== 'undefined') {
|
||||||
for (p in staticProperties) {
|
for (p in staticProperties) {
|
||||||
if (!staticProperties.hasOwnProperty(p)) {
|
//noinspection JSUnfilteredForInLoop
|
||||||
continue;
|
|
||||||
}
|
|
||||||
property = staticProperties[p];
|
property = staticProperties[p];
|
||||||
if (typeof property === "function" && typeof property.type !== "undefined" && property.type === Kotlin.TYPE.INIT_FUN) {
|
if (typeof property === "function" && property.type === Kotlin.TYPE.INIT_FUN) {
|
||||||
|
//noinspection JSUnfilteredForInLoop
|
||||||
metadata.types[p] = property;
|
metadata.types[p] = property;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
//noinspection JSUnfilteredForInLoop
|
||||||
metadata.staticMembers[p] = property;
|
metadata.staticMembers[p] = property;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -196,14 +196,15 @@ var Kotlin = {};
|
|||||||
|
|
||||||
Kotlin.defineInnerTypes = function(constructor, types) {
|
Kotlin.defineInnerTypes = function(constructor, types) {
|
||||||
for (var innerTypeName in types) {
|
for (var innerTypeName in types) {
|
||||||
if (types.hasOwnProperty(innerTypeName)) {
|
// since types object does not inherit from anything, it's just a map
|
||||||
var innerType = types[innerTypeName];
|
//noinspection JSUnfilteredForInLoop
|
||||||
innerType.className = innerTypeName;
|
var innerType = types[innerTypeName];
|
||||||
Object.defineProperty(constructor, innerTypeName, {
|
innerType.className = innerTypeName;
|
||||||
get: innerType,
|
//noinspection JSUnfilteredForInLoop
|
||||||
configurable: true
|
Object.defineProperty(constructor, innerTypeName, {
|
||||||
});
|
get: innerType,
|
||||||
}
|
configurable: true
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -213,12 +214,12 @@ var Kotlin = {};
|
|||||||
var obj = new noNameClass();
|
var obj = new noNameClass();
|
||||||
noNameClass.$metadata$.type = Kotlin.TYPE.OBJECT;
|
noNameClass.$metadata$.type = Kotlin.TYPE.OBJECT;
|
||||||
for (var innerTypeName in metadata.types) {
|
for (var innerTypeName in metadata.types) {
|
||||||
if (metadata.types.hasOwnProperty(innerTypeName)) {
|
// since types object does not inherit from anything, it's just a map
|
||||||
Object.defineProperty(obj, innerTypeName, {
|
//noinspection JSUnfilteredForInLoop
|
||||||
get : metadata.types[innerTypeName],
|
Object.defineProperty(obj, innerTypeName, {
|
||||||
configurable: true
|
get : metadata.types[innerTypeName],
|
||||||
});
|
configurable: true
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
return obj;
|
return obj;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user