[FIR JS] Implement FirJsNativeAnnotationChecker

This commit is contained in:
Nikolay Lunyak
2023-01-04 16:47:50 +02:00
committed by Space Team
parent a20e29e8b7
commit 5b3a73f7cd
56 changed files with 330 additions and 1044 deletions
@@ -1,25 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -NON_TOPLEVEL_CLASS_DECLARATION, -DEPRECATION
fun foo() {
class A {
@nativeInvoke
fun foo() {}
@nativeInvoke
fun invoke(a: String): Int = 0
@nativeInvoke
fun Int.ext() = 1
@nativeInvoke
fun Int.invoke(a: String, b: Int) = "OK"
val anonymous = object {
@nativeInvoke
fun foo() {}
@nativeInvoke
fun invoke(a: String): Int = 0
}
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER -NON_TOPLEVEL_CLASS_DECLARATION, -DEPRECATION
fun foo() {
@@ -22,4 +23,4 @@ fun foo() {
fun invoke(a: String): Int<!> = 0
}
}
}
}
@@ -1,12 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -NON_TOPLEVEL_CLASS_DECLARATION, -DEPRECATION
fun foo() {
@nativeInvoke
fun toplevelFun() {}
<!WRONG_ANNOTATION_TARGET!>@nativeInvoke<!>
val toplevelVal = 0
<!WRONG_ANNOTATION_TARGET!>@nativeInvoke<!>
class Foo {}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -NON_TOPLEVEL_CLASS_DECLARATION, -DEPRECATION
fun foo() {
@@ -9,4 +10,4 @@ fun foo() {
<!WRONG_ANNOTATION_TARGET!>@nativeInvoke<!>
class Foo {}
}
}
@@ -1,43 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -NON_TOPLEVEL_CLASS_DECLARATION, -DEPRECATION
class A {
class B {
class C {
@nativeInvoke
fun foo() {}
@nativeInvoke
fun invoke(a: String): Int = 0
@nativeInvoke
fun Int.ext() = 1
@nativeInvoke
fun Int.invoke(a: String, b: Int) = "OK"
}
object obj {
@nativeInvoke
fun foo() {}
@nativeInvoke
fun invoke(a: String): Int = 0
}
companion object {
@nativeInvoke
fun foo() {}
@nativeInvoke
fun invoke(a: String): Int = 0
}
val anonymous = object {
@nativeInvoke
fun foo() {}
@nativeInvoke
fun invoke(a: String): Int = 0
}
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER -NON_TOPLEVEL_CLASS_DECLARATION, -DEPRECATION
class A {
@@ -40,4 +41,4 @@ class A {
fun invoke(a: String): Int<!> = 0
}
}
}
}
@@ -1,35 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION
class A {
@nativeInvoke
fun foo() {}
@nativeInvoke
fun invoke(a: String): Int = 0
@nativeInvoke
fun Int.ext() = 1
@nativeInvoke
fun Int.invoke(a: String, b: Int) = "OK"
<!WRONG_ANNOTATION_TARGET!>@nativeInvoke<!>
val baz = 0
<!WRONG_ANNOTATION_TARGET!>@nativeInvoke<!>
object Obj {}
companion object {
@nativeInvoke
fun foo() {}
@nativeInvoke
fun invoke(a: String): Int = 0
@nativeInvoke
fun Int.ext() = 1
@nativeInvoke
fun Int.invoke(a: String, b: Int) = "OK"
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION
class A {
@@ -1,10 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION
@nativeInvoke
fun toplevelFun() {}
<!WRONG_ANNOTATION_TARGET!>@nativeInvoke<!>
val toplevelVal = 0
<!WRONG_ANNOTATION_TARGET!>@nativeInvoke<!>
class Foo {}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION
<!NATIVE_ANNOTATIONS_ALLOWED_ONLY_ON_MEMBER_OR_EXTENSION_FUN!>@nativeInvoke