FirSupertypesChecker: implement six more diagnostics
This commit is contained in:
+1
-1
@@ -14,7 +14,7 @@ class WithPC1(a : Int) {
|
||||
}
|
||||
|
||||
|
||||
class Foo() : WithPC0, <!SYNTAX!>this<!>() {
|
||||
class Foo() : <!FINAL_SUPERTYPE!>WithPC0<!>, <!SYNTAX!>this<!>() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -3,4 +3,4 @@ interface B<T> {}
|
||||
interface C<T> {}
|
||||
interface D<T> {}
|
||||
|
||||
interface Test : A<in Int>, B<out Int>, C<*>???, D<Int> {}
|
||||
interface Test : A<in Int>, B<out Int>, C<*>??<!NULLABLE_SUPERTYPE!>?<!>, D<Int> {}
|
||||
|
||||
@@ -28,22 +28,22 @@ interface Test1 : <!INTERFACE_WITH_SUPERCLASS, SUPERTYPE_INITIALIZED_IN_INTERFAC
|
||||
|
||||
interface Test2 : <!INTERFACE_WITH_SUPERCLASS!>C2<!> {}
|
||||
|
||||
interface Test3 : <!INTERFACE_WITH_SUPERCLASS!>C2<!>, C3 {}
|
||||
interface Test3 : <!INTERFACE_WITH_SUPERCLASS!>C2<!>, <!MANY_CLASSES_IN_SUPERTYPE_LIST!>C3<!> {}
|
||||
|
||||
interface Test4 : T1 {}
|
||||
|
||||
interface Test5 : T1, T1 {}
|
||||
interface Test5 : T1, <!SUPERTYPE_APPEARS_TWICE!>T1<!> {}
|
||||
|
||||
interface Test6 : <!INTERFACE_WITH_SUPERCLASS!>C1<!> {}
|
||||
interface Test6 : <!FINAL_SUPERTYPE, INTERFACE_WITH_SUPERCLASS!>C1<!> {}
|
||||
|
||||
class CTest1() : OC1() {}
|
||||
|
||||
class CTest2 : <!SUPERTYPE_NOT_INITIALIZED!>C2<!> {}
|
||||
|
||||
class CTest3 : <!SUPERTYPE_NOT_INITIALIZED!>C2<!>, C3 {}
|
||||
class CTest3 : <!SUPERTYPE_NOT_INITIALIZED!>C2<!>, <!MANY_CLASSES_IN_SUPERTYPE_LIST!>C3<!> {}
|
||||
|
||||
class CTest4 : T1 {}
|
||||
|
||||
class CTest5 : T1, T1 {}
|
||||
class CTest5 : T1, <!SUPERTYPE_APPEARS_TWICE!>T1<!> {}
|
||||
|
||||
class CTest6 : <!SUPERTYPE_NOT_INITIALIZED!>C1<!> {}
|
||||
class CTest6 : <!FINAL_SUPERTYPE, SUPERTYPE_NOT_INITIALIZED!>C1<!> {}
|
||||
|
||||
@@ -10,4 +10,4 @@ data class Nasty(val z: Int, val y: Int): Base(z)
|
||||
|
||||
data class Complex(val y: Int): SuperInterface, SuperClass()
|
||||
|
||||
data class SubData(val sss: String) : Complex(42)
|
||||
data class SubData(val sss: String) : <!FINAL_SUPERTYPE!>Complex<!>(42)
|
||||
|
||||
Vendored
+1
-1
@@ -23,6 +23,6 @@ public abstract class MyClass : Base1, Base2 {
|
||||
}
|
||||
}
|
||||
|
||||
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>class A<!> : MyClass(), Base1 by Delegate1(), Base1 by Delegate2() {
|
||||
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>class A<!> : MyClass(), Base1 by Delegate1(), <!SUPERTYPE_APPEARS_TWICE!>Base1<!> by Delegate2() {
|
||||
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
// FILE: test.kt
|
||||
enum class MyEnum(): <!CLASS_IN_SUPERTYPE_FOR_ENUM!>MyClass<!>() {}
|
||||
enum class MyEnum2(): MyTrait {}
|
||||
enum class MyEnum3(): <!CLASS_IN_SUPERTYPE_FOR_ENUM!>MyEnumBase<!>() {}
|
||||
enum class MyEnum3(): <!CLASS_IN_SUPERTYPE_FOR_ENUM, FINAL_SUPERTYPE!>MyEnumBase<!>() {}
|
||||
|
||||
open class MyClass() {}
|
||||
|
||||
|
||||
@@ -8,6 +8,6 @@ open enum class MyEnum() {
|
||||
|
||||
enum class MyEnum2() {}
|
||||
|
||||
class MyClass(): <!INVISIBLE_REFERENCE!>MyEnum2<!>() {}
|
||||
class MyClass(): <!FINAL_SUPERTYPE, INVISIBLE_REFERENCE!>MyEnum2<!>() {}
|
||||
|
||||
class MyClass2(): <!UNRESOLVED_REFERENCE!>MyJavaEnum<!>() {}
|
||||
class MyClass2(): <!FINAL_SUPERTYPE, UNRESOLVED_REFERENCE!>MyJavaEnum<!>() {}
|
||||
|
||||
-19
@@ -1,19 +0,0 @@
|
||||
// FILE: a.kt
|
||||
|
||||
package foo
|
||||
|
||||
object Bar {
|
||||
fun bar() {}
|
||||
}
|
||||
|
||||
// FILE: b.kt
|
||||
|
||||
package baz
|
||||
|
||||
import foo.Bar
|
||||
|
||||
class C: Bar
|
||||
|
||||
fun test() {
|
||||
Bar.bar()
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// FILE: a.kt
|
||||
|
||||
package foo
|
||||
|
||||
+1
-1
@@ -11,4 +11,4 @@ package a
|
||||
|
||||
import pack1.SomeClass.*
|
||||
|
||||
private class X : <!EXPOSED_SUPER_CLASS, INVISIBLE_REFERENCE!>N<!>()
|
||||
private class X : <!EXPOSED_SUPER_CLASS, FINAL_SUPERTYPE, INVISIBLE_REFERENCE!>N<!>()
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
class Test {
|
||||
@`InnerAnnotation` @InnerAnnotation
|
||||
companion object : StaticClass(), <!UNRESOLVED_REFERENCE!>InnerClass<!>() {
|
||||
companion object : StaticClass(), <!MANY_CLASSES_IN_SUPERTYPE_LIST, UNRESOLVED_REFERENCE!>InnerClass<!>() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -6,12 +6,12 @@ class Outer {
|
||||
class FinalInner
|
||||
|
||||
class Nested1 : OpenNested()
|
||||
class Nested2 : FinalNested()
|
||||
class Nested2 : <!FINAL_SUPERTYPE!>FinalNested<!>()
|
||||
class Nested3 : <!UNRESOLVED_REFERENCE!>OpenInner<!>()
|
||||
class Nested4 : FinalInner()
|
||||
class Nested4 : <!FINAL_SUPERTYPE!>FinalInner<!>()
|
||||
|
||||
inner class Inner1 : OpenNested()
|
||||
inner class Inner2 : FinalNested()
|
||||
inner class Inner2 : <!FINAL_SUPERTYPE!>FinalNested<!>()
|
||||
inner class Inner3 : OpenInner()
|
||||
inner class Inner4 : FinalInner()
|
||||
inner class Inner4 : <!FINAL_SUPERTYPE!>FinalInner<!>()
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
interface A
|
||||
interface X: A?? {
|
||||
interface X: A?<!NULLABLE_SUPERTYPE!>?<!> {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ package toplevelObjectDeclarations
|
||||
}
|
||||
}<!>
|
||||
|
||||
object B : A {}
|
||||
object B : <!SINGLETON_IN_SUPERTYPE!>A<!> {}
|
||||
|
||||
val x = A.foo()
|
||||
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
package toplevelObjectDeclarations
|
||||
|
||||
object CObj {}
|
||||
|
||||
object DOjb : CObj {}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
package toplevelObjectDeclarations
|
||||
|
||||
object CObj {}
|
||||
|
||||
-28
@@ -1,28 +0,0 @@
|
||||
class Foo {
|
||||
<!NON_FINAL_MEMBER_IN_FINAL_CLASS!>open<!> fun openFoo() {}
|
||||
fun finalFoo() {}
|
||||
}
|
||||
|
||||
class Bar : Foo() {
|
||||
override fun openFoo() {}
|
||||
<!OVERRIDING_FINAL_MEMBER!>override<!> fun finalFoo() {}
|
||||
}
|
||||
|
||||
|
||||
open class A1 {
|
||||
open fun foo() {}
|
||||
}
|
||||
|
||||
class B1 : A1()
|
||||
class C1 : B1() {
|
||||
override fun foo() {}
|
||||
}
|
||||
|
||||
abstract class A2 {
|
||||
abstract fun foo()
|
||||
}
|
||||
|
||||
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class B2<!> : A2()
|
||||
class C2 : B2() {
|
||||
override fun foo() {}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
class Foo {
|
||||
<!NON_FINAL_MEMBER_IN_FINAL_CLASS!>open<!> fun openFoo() {}
|
||||
fun finalFoo() {}
|
||||
|
||||
+2
-2
@@ -7,7 +7,7 @@ val bImpl: B.Companion.Interface
|
||||
get() = null!!
|
||||
|
||||
interface A {
|
||||
companion object : Nested(), Interface by aImpl, I<Nested, Interface> {
|
||||
companion object : <!FINAL_SUPERTYPE!>Nested<!>(), Interface by aImpl, I<Nested, Interface> {
|
||||
|
||||
class Nested
|
||||
|
||||
@@ -16,7 +16,7 @@ interface A {
|
||||
}
|
||||
|
||||
class B {
|
||||
companion object : Nested(), Interface by aImpl, I<Nested, Interface> {
|
||||
companion object : <!FINAL_SUPERTYPE!>Nested<!>(), Interface by aImpl, I<Nested, Interface> {
|
||||
|
||||
class Nested
|
||||
|
||||
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
class A : Double.() -> Unit {
|
||||
override fun invoke(p1: Double) {}
|
||||
}
|
||||
|
||||
class B : Int.(Double) -> Unit {
|
||||
override fun invoke(p1: Int, p2: Double) {}
|
||||
}
|
||||
|
||||
open class C {}
|
||||
|
||||
abstract class A0 : C.() -> Int
|
||||
abstract class A1 : C.(Int) -> Int
|
||||
abstract class A2 : C.(Int, String) -> Int
|
||||
|
||||
open class D<T> {}
|
||||
|
||||
abstract class B0<T> : D<T>.() -> Int
|
||||
abstract class B1<T> : D<T>.(C) -> Int
|
||||
abstract class B2<T> : D<T>.(T, C) -> T
|
||||
|
||||
interface E<T> {}
|
||||
|
||||
abstract class C0: C(), Int.() -> Double
|
||||
abstract class C1<T>: C(), E<T>, Int.(C) -> Double
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
class A : <!SUPERTYPE_IS_EXTENSION_FUNCTION_TYPE!>Double.() -> Unit<!> {
|
||||
override fun invoke(p1: Double) {}
|
||||
}
|
||||
|
||||
+3
-3
@@ -1,10 +1,10 @@
|
||||
open class bar()
|
||||
|
||||
interface <!CONSTRUCTOR_IN_INTERFACE!>Foo()<!> : <!INTERFACE_WITH_SUPERCLASS, SUPERTYPE_INITIALIZED_IN_INTERFACE!>bar<!>(), bar, 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 Foo2 : <!INTERFACE_WITH_SUPERCLASS!>bar<!>, Foo {
|
||||
}
|
||||
|
||||
open class Foo1() : bar(), bar, Foo, <!UNRESOLVED_REFERENCE!>Foo<!>() {}
|
||||
open class Foo12 : bar(), bar {}
|
||||
open class Foo1() : bar(), <!MANY_CLASSES_IN_SUPERTYPE_LIST, SUPERTYPE_APPEARS_TWICE!>bar<!>, Foo, <!SUPERTYPE_APPEARS_TWICE, UNRESOLVED_REFERENCE!>Foo<!>() {}
|
||||
open class Foo12 : bar(), <!MANY_CLASSES_IN_SUPERTYPE_LIST, SUPERTYPE_APPEARS_TWICE!>bar<!> {}
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ interface Supertype1 : suspend () -> Unit {
|
||||
|
||||
}
|
||||
|
||||
interface Supertype2 : suspend String.() -> Unit {
|
||||
interface Supertype2 : <!SUPERTYPE_IS_EXTENSION_FUNCTION_TYPE!>suspend String.() -> Unit<!> {
|
||||
|
||||
}
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -9,7 +9,7 @@ fun test() {
|
||||
a <!ARGUMENT_TYPE_MISMATCH!>{}<!>
|
||||
}
|
||||
|
||||
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class Ext<!> : String.() -> Unit {
|
||||
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class Ext<!> : <!SUPERTYPE_IS_EXTENSION_FUNCTION_TYPE!>String.() -> Unit<!> {
|
||||
}
|
||||
|
||||
fun test2() {
|
||||
|
||||
Reference in New Issue
Block a user