[FIR] allow primary constructors in interfaces to support invalid code
KTIJ-23504
This commit is contained in:
@@ -21,7 +21,7 @@ interface T1 {}
|
||||
|
||||
interface T2<T> {}
|
||||
|
||||
interface <!CONSTRUCTOR_IN_INTERFACE!>Test()<!> {
|
||||
interface Test<!CONSTRUCTOR_IN_INTERFACE!>()<!> {
|
||||
}
|
||||
|
||||
interface Test1 : <!INTERFACE_WITH_SUPERCLASS, SUPERTYPE_INITIALIZED_IN_INTERFACE!>C2<!>() {}
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
// !DIAGNOSTICS: -MISSING_CONSTRUCTOR_KEYWORD
|
||||
|
||||
class C(val a: String) {}
|
||||
|
||||
interface <!CONSTRUCTOR_IN_INTERFACE!>T1(val x: String)<!> {}
|
||||
|
||||
interface <!CONSTRUCTOR_IN_INTERFACE!>T2 constructor()<!> {}
|
||||
|
||||
interface <!CONSTRUCTOR_IN_INTERFACE!>T3 private constructor(a: Int)<!> {}
|
||||
|
||||
interface T4 {
|
||||
<!CONSTRUCTOR_IN_INTERFACE!>constructor(a: Int)<!> {
|
||||
val b: Int = 1
|
||||
}
|
||||
}
|
||||
|
||||
interface <!CONSTRUCTOR_IN_INTERFACE!>T5 private ()<!> : T4 {}
|
||||
interface <!CONSTRUCTOR_IN_INTERFACE!>T6<!> private<!SYNTAX!><!> : T5 {}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -MISSING_CONSTRUCTOR_KEYWORD
|
||||
|
||||
class C(val a: String) {}
|
||||
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
open class bar()
|
||||
|
||||
interface <!CONSTRUCTOR_IN_INTERFACE!>Foo()<!> : <!INTERFACE_WITH_SUPERCLASS, SUPERTYPE_INITIALIZED_IN_INTERFACE!>bar<!>(), <!MANY_CLASSES_IN_SUPERTYPE_LIST, SUPERTYPE_APPEARS_TWICE!>bar<!>, <!MANY_CLASSES_IN_SUPERTYPE_LIST, SUPERTYPE_APPEARS_TWICE!>bar<!> {
|
||||
interface Foo<!CONSTRUCTOR_IN_INTERFACE!>()<!> : <!INTERFACE_WITH_SUPERCLASS, SUPERTYPE_INITIALIZED_IN_INTERFACE!>bar<!>(), <!MANY_CLASSES_IN_SUPERTYPE_LIST, SUPERTYPE_APPEARS_TWICE!>bar<!>, <!MANY_CLASSES_IN_SUPERTYPE_LIST, SUPERTYPE_APPEARS_TWICE!>bar<!> {
|
||||
}
|
||||
|
||||
interface Foo2 : <!INTERFACE_WITH_SUPERCLASS!>bar<!>, Foo {
|
||||
}
|
||||
|
||||
open class Foo1() : bar(), <!MANY_CLASSES_IN_SUPERTYPE_LIST, SUPERTYPE_APPEARS_TWICE!>bar<!>, Foo, <!SUPERTYPE_APPEARS_TWICE, UNRESOLVED_REFERENCE!>Foo<!>() {}
|
||||
open class Foo1() : bar(), <!MANY_CLASSES_IN_SUPERTYPE_LIST, SUPERTYPE_APPEARS_TWICE!>bar<!>, Foo, <!SUPERTYPE_APPEARS_TWICE!>Foo<!>() {}
|
||||
open class Foo12 : bar(), <!MANY_CLASSES_IN_SUPERTYPE_LIST, SUPERTYPE_APPEARS_TWICE!>bar<!> {}
|
||||
|
||||
Reference in New Issue
Block a user