[FIR JS] Implement FirJsExportDeclarationChecker

This commit is contained in:
Nikolay Lunyak
2023-01-27 15:22:17 +02:00
parent 624162dc07
commit f644eb7988
38 changed files with 450 additions and 115 deletions
@@ -11,5 +11,5 @@ open class B1 {
}
class D1 : B1() {
<!NOTHING_TO_OVERRIDE!>override<!> fun foo() {}
<!NOTHING_TO_OVERRIDE("foo")!>override<!> fun foo() {}
}
@@ -11,5 +11,5 @@ class C<T> {
}
fun test(a: C<out CharSequence>) {
a[1] = <!ARGUMENT_TYPE_MISMATCH!>25<!>
a[1] = <!ARGUMENT_TYPE_MISMATCH("@R|A|() CapturedType(out kotlin/CharSequence); kotlin/Int")!>25<!>
}
@@ -15,7 +15,7 @@ interface B {
fun <T> a(@An arg: @An Int)
}
<!CONFLICTING_INHERITED_MEMBERS!>interface C<!> : A, B
<!CONFLICTING_INHERITED_MEMBERS("C; a, a")!>interface C<!> : A, B
@An
abstract class D {
@@ -23,8 +23,8 @@ abstract class D {
abstract val d: @An Int
}
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class E<!> : D(), A
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class F<!> : A
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED("Class E; d")!>class E<!> : D(), A
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED("Class F; a")!>class F<!> : A
@An
interface G {
@@ -44,5 +44,5 @@ interface GI : G {
override fun a(@An arg: @An Int) {}
}
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED!>class AG1<!>(val a: A, val g: G) : A by a, G by g
<!MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED!>class AG2<!>() : AI, GI
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED("Class AG1; a")!>class AG1<!>(val a: A, val g: G) : A by a, G by g
<!MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED("Class AG2; a")!>class AG2<!>() : AI, GI
@@ -7,5 +7,5 @@ annotation class Ann(val s: String = "")
fun foo() {}
val bar = foo(
<!TOO_MANY_ARGUMENTS!>15<!>
<!TOO_MANY_ARGUMENTS("public final fun /foo(): R|kotlin/Unit|")!>15<!>
)
@@ -13,5 +13,5 @@ class C<T> {
class Out<out F>
fun test(a: C<out CharSequence>, y: Out<CharSequence>) {
a + <!ARGUMENT_TYPE_MISMATCH!>y<!>
a + <!ARGUMENT_TYPE_MISMATCH("Out<@R|A|() CapturedType(out kotlin/CharSequence)>; Out<kotlin/CharSequence>")!>y<!>
}
@@ -15,12 +15,12 @@ interface A {
@An
interface B : A {
override val p1: <!PROPERTY_TYPE_MISMATCH_ON_OVERRIDE!>Int<!>
override val p1: <!PROPERTY_TYPE_MISMATCH_ON_OVERRIDE("p1; @An() val p1: @R|An|() String")!>Int<!>
@An
override <!VAR_OVERRIDDEN_BY_VAL!>val<!> p2: @An String
override fun test(arg: String): <!RETURN_TYPE_MISMATCH_ON_OVERRIDE!>Int<!>
override <!VAR_OVERRIDDEN_BY_VAL("public abstract override val /B.p2: R|@R|An|() kotlin/String| public get(): R|@R|An|() kotlin/String|; public abstract var /A.p2: R|@R|An|() kotlin/String| public get(): R|@R|An|() kotlin/String| public set(value: R|@R|An|() kotlin/String|): R|kotlin/Unit|")!>val<!> p2: @An String
override fun test(arg: String): <!RETURN_TYPE_MISMATCH_ON_OVERRIDE("test; @An() fun test(@An() arg: @R|An|() String): @R|An|() String")!>Int<!>
}
interface C : A {
override var p2: <!VAR_TYPE_MISMATCH_ON_OVERRIDE!>Int<!>
override var p2: <!VAR_TYPE_MISMATCH_ON_OVERRIDE("p2; @An() var p2: @R|An|() String")!>Int<!>
}
@@ -27,7 +27,7 @@ import org.jetbrains.annotations.NotNull;
annotation class An
class B : A {
override fun foo(): <!RETURN_TYPE_MISMATCH_ON_OVERRIDE!>String?<!> = null
override fun foo(): <!RETURN_TYPE_MISMATCH_ON_OVERRIDE("foo; @NotNull() @An() @MyTypeQualifier() fun foo(): @EnhancedNullability String")!>String?<!> = null
}
@An
@@ -38,5 +38,5 @@ public interface C {
}
class D : C {
override fun foo(): <!RETURN_TYPE_MISMATCH_ON_OVERRIDE!>String?<!> = null
override fun foo(): <!RETURN_TYPE_MISMATCH_ON_OVERRIDE("foo; @NotNull() @An() fun foo(): String")!>String?<!> = null
}