From 8ba164163ca2c88dc490716cd4bcb381e7cb02b7 Mon Sep 17 00:00:00 2001 From: Vladimir Ivanov Date: Wed, 1 Sep 2021 12:38:21 +0300 Subject: [PATCH] [K/N] cinterop: ignore CXIdxEntity_CXXClass in ObjC header Unexpected behavior is caused by `@class` declaration in ObjC context. This entity is not used in CPP context either. --- .../org/jetbrains/kotlin/native/interop/indexer/Indexer.kt | 2 +- .../backend.native/tests/interop/objc/tests/kt48491.h | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 kotlin-native/backend.native/tests/interop/objc/tests/kt48491.h diff --git a/kotlin-native/Interop/Indexer/src/main/kotlin/org/jetbrains/kotlin/native/interop/indexer/Indexer.kt b/kotlin-native/Interop/Indexer/src/main/kotlin/org/jetbrains/kotlin/native/interop/indexer/Indexer.kt index f9fc0472734..c0c886d86a1 100644 --- a/kotlin-native/Interop/Indexer/src/main/kotlin/org/jetbrains/kotlin/native/interop/indexer/Indexer.kt +++ b/kotlin-native/Interop/Indexer/src/main/kotlin/org/jetbrains/kotlin/native/interop/indexer/Indexer.kt @@ -848,7 +848,7 @@ public open class NativeIndexImpl(val library: NativeLibrary, val verbose: Boole } when (kind) { - CXIdxEntity_Struct, CXIdxEntity_Union, CXIdxEntity_CXXClass -> { + CXIdxEntity_Struct, CXIdxEntity_Union -> { if (entityName == null) { // Skip anonymous struct. // (It gets included anyway if used as a named field type). diff --git a/kotlin-native/backend.native/tests/interop/objc/tests/kt48491.h b/kotlin-native/backend.native/tests/interop/objc/tests/kt48491.h new file mode 100644 index 00000000000..7fc7ced6fa9 --- /dev/null +++ b/kotlin-native/backend.native/tests/interop/objc/tests/kt48491.h @@ -0,0 +1,5 @@ +@class KT48491_Foo; + +__attribute__((external_source_symbol(language="Swift", defined_in="KT48491_Bar",generated_declaration))) +@interface KT48491_Foo +@end