Skip to content

Commit af1a615

Browse files
committed
ASTBridging: Bridge swift::LayoutConstraintKind directly
1 parent f622884 commit af1a615

File tree

3 files changed

+28
-81
lines changed

3 files changed

+28
-81
lines changed

include/swift/AST/ASTBridging.h

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include "swift/AST/AttrKind.h"
2525
#include "swift/AST/DiagnosticKind.h"
2626
#include "swift/AST/DiagnosticList.h"
27+
#include "swift/AST/LayoutConstraintKind.h"
2728
#include "swift/Basic/BasicBridging.h"
2829

2930
#ifdef USED_IN_CPP_SOURCE
@@ -2851,19 +2852,6 @@ BridgedIdentifier BridgedPattern_getBoundName(BridgedPattern cPattern);
28512852
// MARK: Generics
28522853
//===----------------------------------------------------------------------===//
28532854

2854-
enum ENUM_EXTENSIBILITY_ATTR(closed) BridgedLayoutConstraintKind {
2855-
BridgedLayoutConstraintKindUnknownLayout,
2856-
BridgedLayoutConstraintKindTrivialOfExactSize,
2857-
BridgedLayoutConstraintKindTrivialOfAtMostSize,
2858-
BridgedLayoutConstraintKindTrivial,
2859-
BridgedLayoutConstraintKindClass,
2860-
BridgedLayoutConstraintKindNativeClass,
2861-
BridgedLayoutConstraintKindRefCountedObject,
2862-
BridgedLayoutConstraintKindNativeRefCountedObject,
2863-
BridgedLayoutConstraintKindBridgeObject,
2864-
BridgedLayoutConstraintKindTrivialStride,
2865-
};
2866-
28672855
class BridgedLayoutConstraint {
28682856
swift::LayoutConstraintInfo *_Nullable raw;
28692857

@@ -2879,7 +2867,7 @@ class BridgedLayoutConstraint {
28792867
bool getIsNull() const;
28802868

28812869
SWIFT_COMPUTED_PROPERTY
2882-
BridgedLayoutConstraintKind getKind() const;
2870+
swift::LayoutConstraintKind getKind() const;
28832871

28842872
BRIDGED_INLINE
28852873
SWIFT_COMPUTED_PROPERTY
@@ -2901,13 +2889,13 @@ BridgedLayoutConstraint_getLayoutConstraint(BridgedASTContext cContext,
29012889
SWIFT_NAME("BridgedLayoutConstraint.getLayoutConstraint(_:kind:)")
29022890
BridgedLayoutConstraint
29032891
BridgedLayoutConstraint_getLayoutConstraint(BridgedASTContext cContext,
2904-
BridgedLayoutConstraintKind cKind);
2892+
swift::LayoutConstraintKind kind);
29052893

29062894
SWIFT_NAME(
29072895
"BridgedLayoutConstraint.getLayoutConstraint(_:kind:size:alignment:)")
29082896
BridgedLayoutConstraint
29092897
BridgedLayoutConstraint_getLayoutConstraint(BridgedASTContext cContext,
2910-
BridgedLayoutConstraintKind cKind,
2898+
swift::LayoutConstraintKind kind,
29112899
size_t size, size_t alignment);
29122900

29132901
enum ENUM_EXTENSIBILITY_ATTR(open) BridgedRequirementReprKind : size_t {

include/swift/AST/LayoutConstraintKind.h

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,48 +2,47 @@
22
//
33
// This source file is part of the Swift.org open source project
44
//
5-
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
5+
// Copyright (c) 2014 - 2025 Apple Inc. and the Swift project authors
66
// Licensed under Apache License v2.0 with Runtime Library Exception
77
//
88
// See https://swift.org/LICENSE.txt for license information
99
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
1010
//
1111
//===----------------------------------------------------------------------===//
12-
//
13-
// This file defines types and APIs for layout constraints.
14-
//
15-
//===----------------------------------------------------------------------===//
16-
17-
#include <cstdint>
1812

1913
#ifndef SWIFT_LAYOUT_CONSTRAINTKIND_H
2014
#define SWIFT_LAYOUT_CONSTRAINTKIND_H
2115

16+
/// This header is included in a bridging header. Be *very* careful with what
17+
/// you include here! See include caveats in `ASTBridging.h`.
18+
#include "swift/Basic/SwiftBridging.h"
19+
#include <stdint.h>
20+
2221
namespace swift {
2322
/// Describes a layout constraint information.
24-
enum class LayoutConstraintKind : uint8_t {
23+
enum class ENUM_EXTENSIBILITY_ATTR(closed) LayoutConstraintKind : uint8_t {
2524
// It is not a known layout constraint.
26-
UnknownLayout,
25+
UnknownLayout SWIFT_NAME("unknownLayout"),
2726
// It is a layout constraint representing a trivial type of a known size.
28-
TrivialOfExactSize,
27+
TrivialOfExactSize SWIFT_NAME("trivialOfExactSize"),
2928
// It is a layout constraint representing a trivial type of a size known to
3029
// be no larger than a given size.
31-
TrivialOfAtMostSize,
30+
TrivialOfAtMostSize SWIFT_NAME("trivialOfAtMostSize"),
3231
// It is a layout constraint representing a trivial type of an unknown size.
33-
Trivial,
32+
Trivial SWIFT_NAME("trivial"),
3433
// It is a layout constraint representing a reference counted class instance.
35-
Class,
34+
Class SWIFT_NAME("class"),
3635
// It is a layout constraint representing a reference counted native class
3736
// instance.
38-
NativeClass,
37+
NativeClass SWIFT_NAME("nativeClass"),
3938
// It is a layout constraint representing a reference counted object.
40-
RefCountedObject,
39+
RefCountedObject SWIFT_NAME("refCountedObject"),
4140
// It is a layout constraint representing a native reference counted object.
42-
NativeRefCountedObject,
41+
NativeRefCountedObject SWIFT_NAME("nativeRefCountedObject"),
4342
// It is a layout constraint representing a bridge object
44-
BridgeObject,
43+
BridgeObject SWIFT_NAME("bridgeObject"),
4544
// It is a layout constraint representing a trivial type of a known stride.
46-
TrivialStride,
45+
TrivialStride SWIFT_NAME("trivialStride"),
4746
LastLayout = TrivialStride,
4847
};
4948
} // namespace swift

lib/AST/Bridging/GenericsBridging.cpp

Lines changed: 7 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -157,45 +157,6 @@ BridgedRequirementRepr BridgedRequirementRepr_createLayoutConstraint(
157157
};
158158
}
159159

160-
static swift::LayoutConstraintKind
161-
unbridged(BridgedLayoutConstraintKind cKind) {
162-
switch (cKind) {
163-
#define CASE(Kind) \
164-
case BridgedLayoutConstraintKind##Kind: \
165-
return swift::LayoutConstraintKind::Kind;
166-
CASE(UnknownLayout)
167-
CASE(TrivialOfExactSize)
168-
CASE(TrivialOfAtMostSize)
169-
CASE(Trivial)
170-
CASE(Class)
171-
CASE(NativeClass)
172-
CASE(RefCountedObject)
173-
CASE(NativeRefCountedObject)
174-
CASE(BridgeObject)
175-
CASE(TrivialStride)
176-
#undef CASE
177-
}
178-
}
179-
180-
static BridgedLayoutConstraintKind bridge(swift::LayoutConstraintKind kind) {
181-
switch (kind) {
182-
#define CASE(Kind) \
183-
case swift::LayoutConstraintKind::Kind: \
184-
return BridgedLayoutConstraintKind##Kind;
185-
CASE(UnknownLayout)
186-
CASE(TrivialOfExactSize)
187-
CASE(TrivialOfAtMostSize)
188-
CASE(Trivial)
189-
CASE(Class)
190-
CASE(NativeClass)
191-
CASE(RefCountedObject)
192-
CASE(NativeRefCountedObject)
193-
CASE(BridgeObject)
194-
CASE(TrivialStride)
195-
#undef CASE
196-
}
197-
}
198-
199160
BridgedLayoutConstraint
200161
BridgedLayoutConstraint_getLayoutConstraint(BridgedASTContext cContext,
201162
BridgedIdentifier cID) {
@@ -204,19 +165,18 @@ BridgedLayoutConstraint_getLayoutConstraint(BridgedASTContext cContext,
204165

205166
BridgedLayoutConstraint
206167
BridgedLayoutConstraint_getLayoutConstraint(BridgedASTContext cContext,
207-
BridgedLayoutConstraintKind cKind) {
208-
return LayoutConstraint::getLayoutConstraint(unbridged(cKind),
209-
cContext.unbridged());
168+
swift::LayoutConstraintKind kind) {
169+
return LayoutConstraint::getLayoutConstraint(kind, cContext.unbridged());
210170
}
211171

212172
BridgedLayoutConstraint
213173
BridgedLayoutConstraint_getLayoutConstraint(BridgedASTContext cContext,
214-
BridgedLayoutConstraintKind cKind,
174+
swift::LayoutConstraintKind kind,
215175
size_t size, size_t alignment) {
216-
return LayoutConstraint::getLayoutConstraint(unbridged(cKind), size,
217-
alignment, cContext.unbridged());
176+
return LayoutConstraint::getLayoutConstraint(kind, size, alignment,
177+
cContext.unbridged());
218178
}
219179

220-
BridgedLayoutConstraintKind BridgedLayoutConstraint::getKind() const {
221-
return bridge(unbridged()->getKind());
180+
swift::LayoutConstraintKind BridgedLayoutConstraint::getKind() const {
181+
return unbridged()->getKind();
222182
}

0 commit comments

Comments
 (0)