[FIR JS] Implement FirJsExportDeclarationChecker
This commit is contained in:
+4
-4
@@ -3,7 +3,7 @@
|
||||
|
||||
fun f1(x: String) {}
|
||||
fun f2(f: () -> Unit) {}
|
||||
fun test1() = <!INAPPLICABLE_CANDIDATE!>f2<!>(::<!UNRESOLVED_REFERENCE!>f1<!>)
|
||||
fun test1() = <!INAPPLICABLE_CANDIDATE("fun f2(f: () -> Unit): Unit")!>f2<!>(::<!UNRESOLVED_REFERENCE("f1")!>f1<!>)
|
||||
|
||||
|
||||
@Target(AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.TYPE)
|
||||
@@ -12,14 +12,14 @@ annotation class Ann
|
||||
fun <@Ann R : @Ann Any> f3(a: Array<@Ann R>): Array<@Ann R?> = null!!
|
||||
|
||||
fun test2(a: @Ann Array<in @Ann Int>) {
|
||||
val r: Array<in Int?> = f3(<!ARGUMENT_TYPE_MISMATCH!>a<!>)
|
||||
val r: Array<in Int?> = f3(<!ARGUMENT_TYPE_MISMATCH("kotlin/Array<@R|Ann|() R>; @R|Ann|() kotlin/Array<in @R|Ann|() kotlin/Int>")!>a<!>)
|
||||
}
|
||||
|
||||
|
||||
var test3: Int = 0
|
||||
set(s: <!WRONG_SETTER_PARAMETER_TYPE!>@Ann String<!>) {}
|
||||
set(s: <!WRONG_SETTER_PARAMETER_TYPE("kotlin/Int; @R|Ann|() kotlin/String")!>@Ann String<!>) {}
|
||||
|
||||
|
||||
fun f4(fn: (@Ann Int, @Ann Int) -> Unit) {}
|
||||
|
||||
val test4 = f4 <!ARGUMENT_TYPE_MISMATCH!>{ single -> }<!>
|
||||
val test4 = f4 <!ARGUMENT_TYPE_MISMATCH("kotlin/Function2<@R|Ann|() kotlin/Int, @R|Ann|() kotlin/Int, kotlin/Unit>; kotlin/Function1<@R|Ann|() kotlin/Int, kotlin/Unit>")!>{ single -> }<!>
|
||||
|
||||
Vendored
+1
-1
@@ -11,5 +11,5 @@ open class B1 {
|
||||
}
|
||||
|
||||
class D1 : B1() {
|
||||
<!NOTHING_TO_OVERRIDE!>override<!> fun foo() {}
|
||||
<!NOTHING_TO_OVERRIDE("foo")!>override<!> fun foo() {}
|
||||
}
|
||||
|
||||
+1
-1
@@ -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<!>
|
||||
}
|
||||
|
||||
+5
-5
@@ -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
|
||||
|
||||
+1
-1
@@ -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<!>
|
||||
)
|
||||
|
||||
Vendored
+1
-1
@@ -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<!>
|
||||
}
|
||||
|
||||
+4
-4
@@ -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<!>
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user