Files
swift-mirror/test/IRGen/objc_class_in_storage_decls.swift
Yuta Saito 5f684ec75f [wasm][test] Add objc_codegen feature to exclude enable-objc-interop tests
Clang does not accept `-x objective-c` with WebAssembly target and it
crashes with "Objective-C support is unimplemented for object file
format" for now. `-enable-objc-interop` can work without the objc
runtime support (which is indicated by `objc_interop` feature), so this
adds a new `objc_codegen` feature to require Objective-C support only
at compile-time.
2023-10-11 00:51:17 +00:00

51 lines
2.0 KiB
Swift

// RUN: %target-swift-frontend -emit-ir -enable-objc-interop -disable-objc-attr-requires-foundation-module %s | %FileCheck %s
// REQUIRES: objc_codegen
struct WrapperStruct {
subscript() -> Void {
unsafeAddress {
// CHECK: @_METACLASS_DATA__TtCFV27objc_class_in_storage_decls13WrapperStructlu9subscriptFT_T_L_31ClassInSubscriptUnsafeAddressor
@objc class ClassInSubscriptUnsafeAddressor {}
fatalError()
}
unsafeMutableAddress {
// CHECK: @_METACLASS_DATA__TtCFV27objc_class_in_storage_decls13WrapperStructau9subscriptFT_T_L_38ClassInSubscriptUnsafeMutableAddressor
@objc class ClassInSubscriptUnsafeMutableAddressor {}
fatalError()
}
}
subscript(x: Void) -> Void {
get {
// CHECK: @_METACLASS_DATA__TtCFV27objc_class_in_storage_decls13WrapperStructg9subscriptFTT__T_L_22ClassInSubscriptGetter
@objc class ClassInSubscriptGetter {}
}
set {
// CHECK: @_METACLASS_DATA__TtCFV27objc_class_in_storage_decls13WrapperStructs9subscriptFTT__T_L_22ClassInSubscriptSetter
@objc class ClassInSubscriptSetter {}
}
}
private subscript(privateSubscript x: Void) -> Void {
// CHECK: @_METACLASS_DATA__TtCFV27objc_class_in_storage_decls13WrapperStructgP33_B60F3A889B72E7873A11885C46E5DF289subscriptFT16privateSubscriptT__T_L_23ClassInPrivateSubscript
@objc class ClassInPrivateSubscript {}
}
var foo: Void {
get {
// CHECK: @_METACLASS_DATA__TtCFV27objc_class_in_storage_decls13WrapperStructg3fooT_L_21ClassInVariableGetter
@objc class ClassInVariableGetter {}
}
set {
// CHECK: @_METACLASS_DATA__TtCFV27objc_class_in_storage_decls13WrapperStructs3fooT_L_21ClassInVariableSetter
@objc class ClassInVariableSetter {}
}
}
private var privateVariable: Void {
// CHECK: @_METACLASS_DATA__TtCFV27objc_class_in_storage_decls13WrapperStructgP33_B60F3A889B72E7873A11885C46E5DF2815privateVariableT_L_22ClassInPrivateVariable
@objc class ClassInPrivateVariable {}
}
}