Files
swift-mirror/test/Interop/SwiftToCxx/enums/enum-member-param-no-shadow-case.swift
Alex Lorenz 3948a2a5d3 [interop][SwiftToCxx] annotate inline thunks with SWIFT_INLINE_THUNK
This macro applies always_inline in addition to inline. It also applies artificial, which lets debugger know that this is an artificial function. The used attribute is added in debug builds to ensure that the symbol is emitted in the binary so that LLDB can invoke it.
2023-02-24 11:23:46 -08:00

32 lines
969 B
Swift

// RUN: %empty-directory(%t)
// RUN: %target-swift-frontend %s -typecheck -module-name Enums -clang-header-expose-decls=all-public -emit-clang-header-path %t/enums.h
// RUN: %FileCheck %s < %t/enums.h
// RUN: %check-interop-cxx-header-in-clang(%t/enums.h -Wno-unused-private-field -Wno-unused-function)
public enum E {
case a
case b(Int)
public init(_ b: Int) {
self = .b(b)
}
public func takeParamA(_ a: Int) {}
public static func takeParamB(_ b: Int) {}
}
// CHECK: static SWIFT_INLINE_THUNK E init(swift::Int b_)
// CHECK: SWIFT_INLINE_THUNK void takeParamA(swift::Int a_)
// CHECK: static SWIFT_INLINE_THUNK void takeParamB(swift::Int b_)
// CHECK: E E::init(swift::Int b_) {
// CHECK: _impl::$s5Enums1EOyACSicfC(b_)
// CHECK: void E::takeParamA(swift::Int a_) const {
// CHECK: _impl::$s5Enums1EO10takeParamAyySiF(a_,
// CHECK: void E::takeParamB(swift::Int b_) {
// CHECK: return _impl::$s5Enums1EO10takeParamByySiFZ(b_);