[K/N][Tests] Move objCActionFqName to NativeStandardInteropNames
^KT-61259
This commit is contained in:
committed by
Space Team
parent
28ee61c57d
commit
7eb239c282
+3
-7
@@ -22,13 +22,9 @@ import org.jetbrains.kotlin.fir.declarations.utils.isExpect
|
||||
import org.jetbrains.kotlin.fir.types.UnexpandedTypeCheck
|
||||
import org.jetbrains.kotlin.fir.types.coneType
|
||||
import org.jetbrains.kotlin.fir.types.isUnit
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.NativeStandardInteropNames.objCActionClassId
|
||||
|
||||
object FirNativeObjCActionChecker : FirClassChecker() {
|
||||
// Copy/pasted from InteropFqNames.objCAction, since module `kotlin-native:backend.native` cannot be imported here for now.
|
||||
val objCActionFqName = FqName("kotlinx.cinterop.ObjCAction")
|
||||
|
||||
@OptIn(UnexpandedTypeCheck::class)
|
||||
override fun check(declaration: FirClass, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||
val session = context.session
|
||||
@@ -39,7 +35,7 @@ object FirNativeObjCActionChecker : FirClassChecker() {
|
||||
}
|
||||
|
||||
fun checkCanGenerateActionImp(function: FirSimpleFunction) {
|
||||
val action = "@$objCActionFqName"
|
||||
val action = "@${objCActionClassId.asFqNameString()}"
|
||||
|
||||
function.receiverParameter?.let {
|
||||
reporter.reportOn(it.source, MUST_NOT_HAVE_EXTENSION_RECEIVER, "$action method", context)
|
||||
@@ -60,7 +56,7 @@ object FirNativeObjCActionChecker : FirClassChecker() {
|
||||
|
||||
fun checkKotlinObjCClass(firClass: FirClass) {
|
||||
for (decl in firClass.declarations) {
|
||||
if (decl is FirSimpleFunction && decl.annotations.hasAnnotation(ClassId.topLevel(objCActionFqName), session))
|
||||
if (decl is FirSimpleFunction && decl.annotations.hasAnnotation(objCActionClassId, session))
|
||||
checkCanGenerateActionImp(decl)
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,9 +1,9 @@
|
||||
// FIR_IDENTICAL
|
||||
// OPT_IN: kotlin.native.internal.InternalForKotlinNative
|
||||
// OPT_IN: kotlinx.cinterop.ExperimentalForeignApi
|
||||
import kotlinx.cinterop.*
|
||||
import kotlinx.cinterop.internal.*
|
||||
|
||||
@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
|
||||
@CStruct(spelling = "struct { }") class Z constructor(rawPtr: NativePtr) : CStructVar(rawPtr) {
|
||||
val x: Pair<Int, Int>? = null
|
||||
@CStruct.MemberAt(offset = 0L) get
|
||||
|
||||
+1
@@ -21,6 +21,7 @@ object NativeStandardInteropNames {
|
||||
val objCFactoryClassId = ClassId(cInteropPackage, Name.identifier("ObjCFactory"))
|
||||
val objCConstructorClassId = ClassId(cInteropPackage, Name.identifier("ObjCConstructor"))
|
||||
val externalObjCClassClassId = ClassId(cInteropPackage, Name.identifier("ExternalObjCClass"))
|
||||
val objCActionClassId = ClassId(cInteropPackage, Name.identifier("ObjCAction"))
|
||||
|
||||
|
||||
object ForwardDeclarations {
|
||||
|
||||
+2
-1
@@ -44,6 +44,7 @@ import org.jetbrains.kotlin.konan.ForeignExceptionMode
|
||||
import org.jetbrains.kotlin.konan.library.KonanLibrary
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.name.NativeStandardInteropNames.objCActionClassId
|
||||
import org.jetbrains.kotlin.native.interop.ObjCMethodInfo
|
||||
|
||||
internal class InteropLowering(generationState: NativeGenerationState) : FileLoweringPass {
|
||||
@@ -212,7 +213,7 @@ private class InteropLoweringPart1(val generationState: NativeGenerationState) :
|
||||
|
||||
irClass.declarations.toList().mapNotNull {
|
||||
when {
|
||||
it is IrSimpleFunction && it.annotations.hasAnnotation(InteropFqNames.objCAction) ->
|
||||
it is IrSimpleFunction && it.annotations.hasAnnotation(objCActionClassId.asSingleFqName()) ->
|
||||
generateActionImp(it)
|
||||
|
||||
it is IrProperty && it.annotations.hasAnnotation(InteropFqNames.objCOutlet) ->
|
||||
|
||||
+3
-2
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.ir.util.*
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
||||
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.NativeStandardInteropNames.objCActionClassId
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
import org.jetbrains.kotlin.utils.fileUtils.descendantRelativeTo
|
||||
import java.io.File
|
||||
@@ -150,7 +151,7 @@ private class BackendChecker(
|
||||
}
|
||||
|
||||
private fun checkCanGenerateActionImp(function: IrSimpleFunction) {
|
||||
val action = "@${InteropFqNames.objCAction}"
|
||||
val action = "@${objCActionClassId.asFqNameString()}"
|
||||
|
||||
function.extensionReceiverParameter?.let {
|
||||
reportError(it, "$action method must not have extension receiver")
|
||||
@@ -207,7 +208,7 @@ private class BackendChecker(
|
||||
|
||||
private fun checkKotlinObjCClass(irClass: IrClass) {
|
||||
for (declaration in irClass.declarations) {
|
||||
if (declaration is IrSimpleFunction && declaration.annotations.hasAnnotation(InteropFqNames.objCAction))
|
||||
if (declaration is IrSimpleFunction && declaration.annotations.hasAnnotation(objCActionClassId.asSingleFqName()))
|
||||
checkCanGenerateActionImp(declaration)
|
||||
if (declaration is IrProperty && declaration.annotations.hasAnnotation(InteropFqNames.objCOutlet))
|
||||
checkCanGenerateOutletSetterImp(declaration)
|
||||
|
||||
@@ -19,7 +19,6 @@ object InteropFqNames {
|
||||
|
||||
const val objCObjectBaseName = "ObjCObjectBase"
|
||||
const val objCOverrideInitName = "OverrideInit"
|
||||
const val objCActionName = "ObjCAction"
|
||||
const val objCOutletName = "ObjCOutlet"
|
||||
const val objCMethodImpName = "ObjCMethodImp"
|
||||
const val exportObjCClassName = "ExportObjCClass"
|
||||
@@ -77,7 +76,6 @@ object InteropFqNames {
|
||||
|
||||
val objCObjectBase = packageName.child(objCObjectBaseName)
|
||||
val objCOverrideInit = objCObjectBase.child(objCOverrideInitName)
|
||||
val objCAction = packageName.child(objCActionName)
|
||||
val objCOutlet = packageName.child(objCOutletName)
|
||||
val objCMethodImp = packageName.child(objCMethodImpName)
|
||||
val exportObjCClass = packageName.child(exportObjCClassName)
|
||||
|
||||
Reference in New Issue
Block a user