Native: add tests for ExperimentalForeignApi on cinterop declarations

Add tests checking that all (top-level) declarations generated by
cinterop now have ExperimentalForeignApi annotation.

^KT-58362
This commit is contained in:
Svyatoslav Scherbina
2023-07-19 15:41:32 +02:00
committed by Space Team
parent 3f3f6eb5a8
commit bcc4a891be
30 changed files with 345 additions and 0 deletions
@@ -0,0 +1,27 @@
package dependency {
@ExternalObjCClass @ExperimentalForeignApi open class MyClass : ObjCObjectBase {
@ObjCConstructor(designated = true, initSelector = "init") constructor()
var instanceProperty: Int
@ObjCMethod(encoding = "i16@0:8", isStret = false, selector = "instanceProperty") get
@ObjCMethod(encoding = "v20@0:8i16", isStret = false, selector = "setInstanceProperty:") set
@Deprecated(level = DeprecationLevel.ERROR, message = "Use constructor instead", replaceWith = ReplaceWith(expression = "MyClass()", imports = {})) @ObjCMethod(encoding = "@16@0:8", isStret = false, selector = "init") @CCall.ConsumesReceiver @CCall.ReturnsRetained open external fun init(): MyClass?
@ObjCMethod(encoding = "v16@0:8", isStret = false, selector = "instanceMethod") open external fun instanceMethod()
@ObjCMethod(encoding = "i16@0:8", isStret = false, selector = "instanceProperty") open external fun instanceProperty(): Int
@ObjCMethod(encoding = "v20@0:8i16", isStret = false, selector = "setInstanceProperty:") open external fun setInstanceProperty(instanceProperty: Int)
companion object : MyClassMeta, ObjCClassOf<MyClass>
}
@ExternalObjCClass @ExperimentalForeignApi open class MyClassMeta : ObjCObjectBaseMeta {
protected constructor()
var classProperty: Any?
@ObjCMethod(encoding = "@16@0:8", isStret = false, selector = "classProperty") get
@ObjCMethod(encoding = "v24@0:8@16", isStret = false, selector = "setClassProperty:") set
@ObjCMethod(encoding = "v16@0:8", isStret = false, selector = "classMethod") open external fun classMethod()
@ObjCMethod(encoding = "@16@0:8", isStret = false, selector = "classProperty") open external fun classProperty(): Any?
@ObjCMethod(encoding = "v24@0:8@16", isStret = false, selector = "setClassProperty:") open external fun setClassProperty(classProperty: Any?)
}
}
@@ -0,0 +1,2 @@
language = Objective-C
headers = objcclass.h