| // TARGET_BACKEND: NATIVE | |
| // DISABLE_NATIVE: isAppleTarget=false | |
| // MODULE: objclib | |
| // FILE: objclib.def | |
| language = Objective-C | |
| headers = objclib.h | |
| headerFilter = objclib.h | |
| // FILE: objclib.h | |
| #import <Foundation/Foundation.h> | |
| @protocol Legacy | |
| - (int)legacyApi; | |
| @end | |
| @interface Widget : NSObject <Legacy> | |
| - (int)legacyApi __attribute__((unavailable)); | |
| @end | |
| // FILE: objclib.m | |
| #import "objclib.h" | |
| @implementation Widget | |
| - (int)legacyApi { return 42; } | |
| @end | |
| // MODULE: main(objclib) | |
| // FILE: main.kt | |
| @file:OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) | |
| import objclib.Widget | |
| @Suppress("DEPRECATION", "DEPRECATION_ERROR") | |
| fun box(): String { | |
| val result = Widget().legacyApi() | |
| return if (result == 42) "OK" else "FAIL: legacyApi=$result" | |
| } |