[FIR] Support typealiases in FirJsAbstractNativeAnnotationChecker
This commit is contained in:
committed by
Space Team
parent
aaf30c2695
commit
fc285c079e
+2
-2
@@ -15,10 +15,10 @@ import org.jetbrains.kotlin.fir.analysis.checkers.isTopLevel
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.js.FirJsErrors
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.getAnnotationByClassId
|
||||
import org.jetbrains.kotlin.fir.declarations.hasAnnotation
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.isExtension
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.visibility
|
||||
import org.jetbrains.kotlin.fir.expressions.unexpandedClassId
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.JsStandardClassIds
|
||||
@@ -27,7 +27,7 @@ internal abstract class FirJsAbstractNativeAnnotationChecker(private val require
|
||||
protected fun FirFunction.hasRequiredAnnotation(context: CheckerContext) = hasAnnotation(requiredAnnotation, context.session)
|
||||
|
||||
override fun check(declaration: FirSimpleFunction, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||
val annotation = declaration.annotations.find { it.unexpandedClassId == requiredAnnotation } ?: return
|
||||
val annotation = declaration.getAnnotationByClassId(requiredAnnotation, context.session) ?: return
|
||||
|
||||
val isMember = !context.isTopLevel && declaration.visibility != Visibilities.Local
|
||||
val isExtension = declaration.isExtension
|
||||
|
||||
Vendored
+4
-2
@@ -1,9 +1,11 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -NON_TOPLEVEL_CLASS_DECLARATION, -DEPRECATION
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -NON_TOPLEVEL_CLASS_DECLARATION, -DEPRECATION -TYPEALIAS_EXPANSION_DEPRECATION
|
||||
|
||||
typealias NS = nativeSetter
|
||||
|
||||
fun foo() {
|
||||
class A {
|
||||
<!NATIVE_ANNOTATIONS_ALLOWED_ONLY_ON_MEMBER_OR_EXTENSION_FUN!>@nativeSetter
|
||||
<!NATIVE_ANNOTATIONS_ALLOWED_ONLY_ON_MEMBER_OR_EXTENSION_FUN!>@NS
|
||||
fun set(a: String, v: Any?): Any?<!> = null
|
||||
|
||||
<!NATIVE_ANNOTATIONS_ALLOWED_ONLY_ON_MEMBER_OR_EXTENSION_FUN!>@nativeSetter
|
||||
|
||||
compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onLocalNonNativeClassMembers.txt
Vendored
+2
@@ -1,3 +1,5 @@
|
||||
package
|
||||
|
||||
public fun foo(): kotlin.Unit
|
||||
public typealias NS = kotlin.js.nativeSetter
|
||||
|
||||
|
||||
Reference in New Issue
Block a user