Skip to content

Commit eaf7e00

Browse files
committed
ASTBridging: Bridge swift::LayoutConstraintKind directly
1 parent db9ad96 commit eaf7e00

File tree

3 files changed

+28
-80
lines changed

3 files changed

+28
-80
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,19 +2867,19 @@ class BridgedLayoutConstraint {
28792867

28802868
SWIFT_NAME("init(_:kind:)")
28812869
BridgedLayoutConstraint(BridgedASTContext cContext,
2882-
BridgedLayoutConstraintKind cKind);
2870+
swift::LayoutConstraintKind kind);
28832871

28842872
SWIFT_NAME("init(_:kind:size:alignment:)")
28852873
BridgedLayoutConstraint(BridgedASTContext cContext,
2886-
BridgedLayoutConstraintKind cKind, size_t size,
2874+
swift::LayoutConstraintKind kind, size_t size,
28872875
size_t alignment);
28882876

28892877
BRIDGED_INLINE
28902878
SWIFT_COMPUTED_PROPERTY
28912879
bool getIsNull() const;
28922880

28932881
SWIFT_COMPUTED_PROPERTY
2894-
BridgedLayoutConstraintKind getKind() const;
2882+
swift::LayoutConstraintKind getKind() const;
28952883

28962884
BRIDGED_INLINE
28972885
SWIFT_COMPUTED_PROPERTY

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 & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -157,61 +157,22 @@ 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::BridgedLayoutConstraint(BridgedASTContext cContext,
200161
BridgedIdentifier cID)
201162
: BridgedLayoutConstraint(
202163
swift::getLayoutConstraint(cID.unbridged(), cContext.unbridged())) {}
203164

204165
BridgedLayoutConstraint::BridgedLayoutConstraint(
205-
BridgedASTContext cContext, BridgedLayoutConstraintKind cKind)
206-
: BridgedLayoutConstraint(LayoutConstraint::getLayoutConstraint(
207-
::unbridged(cKind), cContext.unbridged())) {}
166+
BridgedASTContext cContext, swift::LayoutConstraintKind kind)
167+
: BridgedLayoutConstraint(
168+
LayoutConstraint::getLayoutConstraint(kind, cContext.unbridged())) {}
208169

209170
BridgedLayoutConstraint::BridgedLayoutConstraint(
210-
BridgedASTContext cContext, BridgedLayoutConstraintKind cKind, size_t size,
171+
BridgedASTContext cContext, swift::LayoutConstraintKind kind, size_t size,
211172
size_t alignment)
212173
: BridgedLayoutConstraint(LayoutConstraint::getLayoutConstraint(
213-
::unbridged(cKind), size, alignment, cContext.unbridged())) {}
174+
kind, size, alignment, cContext.unbridged())) {}
214175

215-
BridgedLayoutConstraintKind BridgedLayoutConstraint::getKind() const {
216-
return bridge(unbridged()->getKind());
176+
swift::LayoutConstraintKind BridgedLayoutConstraint::getKind() const {
177+
return unbridged()->getKind();
217178
}

0 commit comments

Comments
 (0)