Skip to content

Commit ac7153e

Browse files
committed
{AST,Basic}Bridging: Use SWIFT_COMPUTED_PROPERTY
1 parent 36d1db7 commit ac7153e

File tree

6 files changed

+106
-194
lines changed

6 files changed

+106
-194
lines changed

include/swift/AST/ASTBridging.h

Lines changed: 34 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -118,17 +118,15 @@ class BridgedIdentifier {
118118
BridgedIdentifier(const void *_Nullable raw) : Raw(raw) {}
119119

120120
BRIDGED_INLINE BridgedIdentifier(swift::Identifier ident);
121-
122121
BRIDGED_INLINE swift::Identifier unbridged() const;
123-
};
124122

125-
SWIFT_NAME("getter:BridgedIdentifier.raw(self:)")
126-
inline const void *_Nullable BridgedIdentifier_raw(BridgedIdentifier ident) {
127-
return ident.Raw;
128-
}
123+
SWIFT_COMPUTED_PROPERTY
124+
const void *_Nullable getRaw() const { return Raw; }
129125

130-
SWIFT_NAME("getter:BridgedIdentifier.isOperator(self:)")
131-
BRIDGED_INLINE bool BridgedIdentifier_isOperator(const BridgedIdentifier);
126+
BRIDGED_INLINE
127+
SWIFT_COMPUTED_PROPERTY
128+
bool getIsOperator() const;
129+
};
132130

133131
struct BridgedLocatedIdentifier {
134132
SWIFT_NAME("name")
@@ -236,6 +234,11 @@ BridgedDeclNameLoc_createParsed(
236234
// MARK: ASTContext
237235
//===----------------------------------------------------------------------===//
238236

237+
enum ENUM_EXTENSIBILITY_ATTR(closed) BridgedEndianness : size_t {
238+
EndianLittle,
239+
EndianBig,
240+
};
241+
239242
class BridgedASTContext {
240243
swift::ASTContext * _Nonnull Ctx;
241244

@@ -245,17 +248,31 @@ class BridgedASTContext {
245248

246249
SWIFT_UNAVAILABLE("Use '.raw' instead")
247250
BRIDGED_INLINE swift::ASTContext &unbridged() const;
251+
252+
SWIFT_COMPUTED_PROPERTY
253+
void *_Nonnull getRaw() const { return Ctx; }
254+
255+
SWIFT_COMPUTED_PROPERTY
256+
unsigned getMajorLanguageVersion() const;
257+
258+
SWIFT_COMPUTED_PROPERTY
259+
unsigned getLangOptsTargetPointerBitWidth() const;
260+
261+
SWIFT_COMPUTED_PROPERTY
262+
bool getLangOptsAttachCommentsToDecls() const;
263+
264+
SWIFT_COMPUTED_PROPERTY
265+
BridgedEndianness getLangOptsTargetEndianness() const;
266+
267+
SWIFT_COMPUTED_PROPERTY
268+
BridgedAvailabilityMacroMap getAvailabilityMacroMap() const;
248269
};
249270

250271
#define IDENTIFIER_WITH_NAME(Name, _) \
251272
SWIFT_NAME("getter:BridgedASTContext.id_" #Name "(self:)") \
252273
BRIDGED_INLINE BridgedIdentifier BridgedASTContext_id_##Name(BridgedASTContext bridged);
253274
#include "swift/AST/KnownIdentifiers.def"
254275

255-
SWIFT_NAME("getter:BridgedASTContext.raw(self:)")
256-
BRIDGED_INLINE
257-
void * _Nonnull BridgedASTContext_raw(BridgedASTContext bridged);
258-
259276
SWIFT_NAME("BridgedASTContext.init(raw:)")
260277
BRIDGED_INLINE
261278
BridgedASTContext BridgedASTContext_fromRaw(void * _Nonnull ptr);
@@ -283,9 +300,6 @@ SWIFT_NAME("BridgedASTContext.langOptsHasFeature(self:_:)")
283300
bool BridgedASTContext_langOptsHasFeature(BridgedASTContext cContext,
284301
BridgedFeature feature);
285302

286-
SWIFT_NAME("getter:BridgedASTContext.majorLanguageVersion(self:)")
287-
unsigned BridgedASTContext_majorLanguageVersion(BridgedASTContext cContext);
288-
289303
SWIFT_NAME("BridgedASTContext.langOptsCustomConditionSet(self:_:)")
290304
bool BridgedASTContext_langOptsCustomConditionSet(BridgedASTContext cContext,
291305
BridgedStringRef cName);
@@ -318,25 +332,10 @@ SWIFT_NAME("BridgedASTContext.langOptsIsActiveTargetPtrAuth(self:_:)")
318332
bool BridgedASTContext_langOptsIsActiveTargetPtrAuth(BridgedASTContext cContext,
319333
BridgedStringRef cName);
320334

321-
SWIFT_NAME("getter:BridgedASTContext.langOptsTargetPointerBitWidth(self:)")
322-
unsigned BridgedASTContext_langOptsTargetPointerBitWidth(BridgedASTContext cContext);
323-
324335
SWIFT_NAME("BridgedASTContext.langOptsGetTargetAtomicBitWidths(self:_:)")
325336
SwiftInt BridgedASTContext_langOptsGetTargetAtomicBitWidths(BridgedASTContext cContext,
326337
SwiftInt* _Nullable * _Nonnull cComponents);
327338

328-
enum ENUM_EXTENSIBILITY_ATTR(closed) BridgedEndianness : size_t {
329-
EndianLittle,
330-
EndianBig,
331-
};
332-
333-
SWIFT_NAME("getter:BridgedASTContext.langOptsAttachCommentsToDecls(self:)")
334-
bool BridgedASTContext_langOptsAttachCommentsToDecls(
335-
BridgedASTContext cContext);
336-
337-
SWIFT_NAME("getter:BridgedASTContext.langOptsTargetEndianness(self:)")
338-
BridgedEndianness BridgedASTContext_langOptsTargetEndianness(BridgedASTContext cContext);
339-
340339
SWIFT_NAME("BridgedASTContext.langOptsGetLanguageVersion(self:_:)")
341340
SwiftInt BridgedASTContext_langOptsGetLanguageVersion(BridgedASTContext cContext,
342341
SwiftInt* _Nullable * _Nonnull cComponents);
@@ -345,10 +344,6 @@ SWIFT_NAME("BridgedASTContext.langOptsGetCompilerVersion(self:_:)")
345344
SwiftInt BridgedASTContext_langOptsGetCompilerVersion(BridgedASTContext cContext,
346345
SwiftInt* _Nullable * _Nonnull cComponents);
347346

348-
SWIFT_NAME("getter:BridgedASTContext.availabilityMacroMap(self:)")
349-
BridgedAvailabilityMacroMap
350-
BridgedASTContext_getAvailabilityMacroMap(BridgedASTContext cContext);
351-
352347
/* Deallocate an array of Swift int values that was allocated in C++. */
353348
void deallocateIntBuffer(SwiftInt * _Nullable cComponents);
354349

@@ -442,7 +437,7 @@ class BridgedASTNode {
442437
return BridgedASTNode(e.unbridged(), BridgedASTNodeKindExpr);
443438
}
444439

445-
SWIFT_UNAVAILABLE("use .kind")
440+
SWIFT_COMPUTED_PROPERTY
446441
BridgedASTNodeKind getKind() const {
447442
return static_cast<BridgedASTNodeKind>(opaque & 0x7);
448443
}
@@ -454,11 +449,6 @@ class BridgedASTNode {
454449
BRIDGED_INLINE swift::ASTNode unbridged() const;
455450
};
456451

457-
SWIFT_NAME("getter:BridgedASTNode.kind(self:)")
458-
inline BridgedASTNodeKind BridgedASTNode_getKind(BridgedASTNode node) {
459-
return node.getKind();
460-
}
461-
462452
// Declare `.asDecl` on each BridgedXXXDecl type, which upcasts a wrapper for
463453
// a Decl subclass to a BridgedDecl.
464454
#define DECL(Id, Parent) \
@@ -1930,8 +1920,11 @@ class BridgedCaptureListEntry {
19301920

19311921
public:
19321922
BRIDGED_INLINE BridgedCaptureListEntry(swift::CaptureListEntry CLE);
1933-
19341923
BRIDGED_INLINE swift::CaptureListEntry unbridged() const;
1924+
1925+
BRIDGED_INLINE
1926+
SWIFT_COMPUTED_PROPERTY
1927+
BridgedVarDecl getVarDecl() const;
19351928
};
19361929

19371930
SWIFT_NAME("BridgedCaptureListEntry.createParsed(_:declContext:ownership:"
@@ -1943,10 +1936,6 @@ BridgedCaptureListEntry BridegedCaptureListEntry_createParsed(
19431936
BridgedSourceLoc cNameLoc, BridgedSourceLoc cEqualLoc,
19441937
BridgedExpr cInitializer);
19451938

1946-
SWIFT_NAME("getter:BridgedCaptureListEntry.varDecl(self:)")
1947-
BRIDGED_INLINE BridgedVarDecl
1948-
BridegedCaptureListEntry_getVar(BridgedCaptureListEntry entry);
1949-
19501939
SWIFT_NAME("BridgedCaptureListExpr.createParsed(_:captureList:closure:)")
19511940
BridgedCaptureListExpr BridgedCaptureListExpr_createParsed(BridgedASTContext cContext,
19521941
BridgedArrayRef cCaptureList,

include/swift/AST/ASTBridgingImpl.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ swift::Identifier BridgedIdentifier::unbridged() const {
4343
return swift::Identifier::getFromOpaquePointer(Raw);
4444
}
4545

46-
bool BridgedIdentifier_isOperator(const BridgedIdentifier ident) {
47-
return ident.unbridged().isOperator();
46+
bool BridgedIdentifier::getIsOperator() const {
47+
return unbridged().isOperator();
4848
}
4949

5050
//===----------------------------------------------------------------------===//
@@ -938,8 +938,8 @@ swift::CaptureListEntry BridgedCaptureListEntry::unbridged() const {
938938
return swift::CaptureListEntry(PBD);
939939
}
940940

941-
BridgedVarDecl BridegedCaptureListEntry_getVar(BridgedCaptureListEntry entry) {
942-
return entry.unbridged().getVar();
941+
BridgedVarDecl BridgedCaptureListEntry::getVarDecl() const {
942+
return unbridged().getVar();
943943
}
944944

945945
//===----------------------------------------------------------------------===//

include/swift/Basic/BasicBridging.h

Lines changed: 50 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -105,13 +105,10 @@ typedef uintptr_t SwiftUInt;
105105
\
106106
SWIFT_UNAVAILABLE("Use '.raw' instead") \
107107
Qualifier Node *Nullability unbridged() const { return Ptr; } \
108-
}; \
109108
\
110-
SWIFT_NAME("getter:Bridged" #Name ".raw(self:)") \
111-
inline Qualifier void *Nullability Bridged##Name##_getRaw( \
112-
Bridged##Name bridged) { \
113-
return bridged.unbridged(); \
114-
} \
109+
SWIFT_COMPUTED_PROPERTY \
110+
Qualifier void *Nullability getRaw() const { return unbridged(); }; \
111+
}; \
115112
\
116113
SWIFT_NAME("Bridged" #Name ".init(raw:)") \
117114
inline Bridged##Name Bridged##Name##_fromRaw( \
@@ -163,20 +160,19 @@ class BridgedArrayRef {
163160
return {static_cast<const T *>(Data), Length};
164161
}
165162
#endif
166-
};
167163

168-
SWIFT_NAME("getter:BridgedArrayRef.data(self:)")
169-
BRIDGED_INLINE
170-
const void *_Nullable BridgedArrayRef_data(BridgedArrayRef arr);
164+
SWIFT_COMPUTED_PROPERTY
165+
const void *_Nullable getData() const { return Data; }
171166

172-
SWIFT_NAME("getter:BridgedArrayRef.count(self:)")
173-
BRIDGED_INLINE SwiftInt BridgedArrayRef_count(BridgedArrayRef arr);
167+
SWIFT_COMPUTED_PROPERTY
168+
SwiftInt getCount() const { return static_cast<SwiftInt>(Length); }
174169

175-
SWIFT_NAME("getter:BridgedArrayRef.isEmpty(self:)")
176-
BRIDGED_INLINE bool BridgedArrayRef_isEmpty(BridgedArrayRef arr);
170+
SWIFT_COMPUTED_PROPERTY
171+
bool getIsEmpty() const { return Length == 0; }
172+
};
177173

178174
//===----------------------------------------------------------------------===//
179-
// MARK: Data
175+
// MARK: BridgedData
180176
//===----------------------------------------------------------------------===//
181177

182178
class BridgedData {
@@ -192,17 +188,15 @@ class BridgedData {
192188
SWIFT_NAME("init(baseAddress:count:)")
193189
BridgedData(const char *_Nullable baseAddress, size_t length)
194190
: BaseAddress(baseAddress), Length(length) {}
195-
};
196191

197-
SWIFT_NAME("getter:BridgedData.baseAddress(self:)")
198-
BRIDGED_INLINE
199-
const char *_Nullable BridgedData_baseAddress(BridgedData data);
192+
SWIFT_COMPUTED_PROPERTY
193+
const char *_Nullable getBaseAddress() const { return BaseAddress; }
200194

201-
SWIFT_NAME("getter:BridgedData.count(self:)")
202-
BRIDGED_INLINE SwiftInt BridgedData_count(BridgedData data);
195+
SWIFT_COMPUTED_PROPERTY
196+
SwiftInt getCount() const { return static_cast<SwiftInt>(Length); }
203197

204-
SWIFT_NAME("BridgedData.free(self:)")
205-
void BridgedData_free(BridgedData data);
198+
void free() const;
199+
};
206200

207201
//===----------------------------------------------------------------------===//
208202
// MARK: Feature
@@ -233,40 +227,39 @@ class BridgedStringRef {
233227
BridgedStringRef(const char *_Nullable data, size_t length)
234228
: Data(data), Length(length) {}
235229

236-
void write(BridgedOStream os) const;
237-
};
230+
SWIFT_COMPUTED_PROPERTY
231+
const uint8_t *_Nullable getData() const { return (const uint8_t *)Data; }
238232

239-
SWIFT_NAME("getter:BridgedStringRef.data(self:)")
240-
BRIDGED_INLINE
241-
const uint8_t *_Nullable BridgedStringRef_data(BridgedStringRef str);
233+
SWIFT_COMPUTED_PROPERTY
234+
SwiftInt getCount() const { return Length; }
242235

243-
SWIFT_NAME("getter:BridgedStringRef.count(self:)")
244-
BRIDGED_INLINE SwiftInt BridgedStringRef_count(BridgedStringRef str);
236+
SWIFT_COMPUTED_PROPERTY
237+
bool getIsEmpty() const { return Length == 0; }
245238

246-
SWIFT_NAME("getter:BridgedStringRef.isEmpty(self:)")
247-
BRIDGED_INLINE bool BridgedStringRef_empty(BridgedStringRef str);
239+
void write(BridgedOStream os) const;
240+
};
248241

249242
class BridgedOwnedString {
250243
char *_Nonnull Data;
251244
size_t Length;
252245

253246
public:
254247
BridgedOwnedString(llvm::StringRef stringToCopy);
255-
256248
BRIDGED_INLINE llvm::StringRef unbridgedRef() const;
257249

258-
void destroy() const;
259-
} SWIFT_SELF_CONTAINED;
250+
SWIFT_COMPUTED_PROPERTY
251+
const uint8_t *_Nullable getData() const {
252+
return (const uint8_t *)(Data ? Data : "");
253+
}
260254

261-
SWIFT_NAME("getter:BridgedOwnedString.data(self:)")
262-
BRIDGED_INLINE
263-
const uint8_t *_Nullable BridgedOwnedString_data(BridgedOwnedString str);
255+
SWIFT_COMPUTED_PROPERTY
256+
SwiftInt getCount() const { return Length; }
264257

265-
SWIFT_NAME("getter:BridgedOwnedString.count(self:)")
266-
BRIDGED_INLINE SwiftInt BridgedOwnedString_count(BridgedOwnedString str);
258+
SWIFT_COMPUTED_PROPERTY
259+
bool getIsEmpty() const { return Length == 0; }
267260

268-
SWIFT_NAME("getter:BridgedOwnedString.isEmpty(self:)")
269-
BRIDGED_INLINE bool BridgedOwnedString_empty(BridgedOwnedString str);
261+
void destroy() const;
262+
} SWIFT_SELF_CONTAINED;
270263

271264
//===----------------------------------------------------------------------===//
272265
// MARK: BridgedOptionalInt
@@ -297,26 +290,23 @@ class BridgedOStream {
297290
SWIFT_UNAVAILABLE("Use init(raw:) instead")
298291
BridgedOStream(llvm::raw_ostream * _Nonnull os) : os(os) {}
299292

293+
SWIFT_NAME("init(raw:)")
294+
BridgedOStream(void *_Nonnull os)
295+
: os(static_cast<llvm::raw_ostream *>(os)) {}
296+
300297
SWIFT_UNAVAILABLE("Use '.raw' instead")
301298
llvm::raw_ostream * _Nonnull unbridged() const { return os; }
302299

300+
SWIFT_COMPUTED_PROPERTY
301+
void *_Nonnull getRaw(BridgedOStream bridged) const { return unbridged(); }
302+
303303
void write(BridgedStringRef string) const;
304304

305305
void newLine() const;
306306

307307
void flush() const;
308308
};
309309

310-
SWIFT_NAME("getter:BridgedOStream.raw(self:)")
311-
inline void * _Nonnull BridgedOStream_getRaw(BridgedOStream bridged) {
312-
return bridged.unbridged();
313-
}
314-
315-
SWIFT_NAME("BridgedOStream.init(raw:)")
316-
inline BridgedOStream BridgedOStream_fromRaw(void * _Nonnull os) {
317-
return static_cast<llvm::raw_ostream *>(os);
318-
}
319-
320310
BridgedOStream Bridged_dbgs();
321311

322312
//===----------------------------------------------------------------------===//
@@ -339,14 +329,14 @@ class BridgedSourceLoc {
339329
SWIFT_IMPORT_UNSAFE
340330
const void *_Nullable getOpaquePointerValue() const { return Raw; }
341331

332+
SWIFT_COMPUTED_PROPERTY
333+
bool getIsValid() const { return Raw != nullptr; }
334+
342335
SWIFT_NAME("advanced(by:)")
343336
BRIDGED_INLINE
344337
BridgedSourceLoc advancedBy(size_t n) const;
345338
};
346339

347-
SWIFT_NAME("getter:BridgedSourceLoc.isValid(self:)")
348-
BRIDGED_INLINE bool BridgedSourceLoc_isValid(BridgedSourceLoc loc);
349-
350340
//===----------------------------------------------------------------------===//
351341
// MARK: SourceRange
352342
//===----------------------------------------------------------------------===//
@@ -389,19 +379,13 @@ class BridgedCharSourceRange {
389379
BRIDGED_INLINE BridgedCharSourceRange(swift::CharSourceRange range);
390380

391381
BRIDGED_INLINE swift::CharSourceRange unbridged() const;
392-
};
393382

394-
SWIFT_NAME("getter:BridgedCharSourceRange.start(self:)")
395-
inline BridgedSourceLoc
396-
BridgedCharSourceRange_start(BridgedCharSourceRange range) {
397-
return range.Start;
398-
}
383+
SWIFT_COMPUTED_PROPERTY
384+
BridgedSourceLoc getStart() const { return Start; }
399385

400-
SWIFT_NAME("getter:BridgedCharSourceRange.byteLength(self:)")
401-
inline SwiftInt
402-
BridgedCharSourceRange_byteLength(BridgedCharSourceRange range) {
403-
return static_cast<SwiftInt>(range.ByteLength);
404-
}
386+
SWIFT_COMPUTED_PROPERTY
387+
SwiftInt getByteLength() const { return static_cast<SwiftInt>(ByteLength); }
388+
};
405389

406390
//===----------------------------------------------------------------------===//
407391
// MARK: std::vector<BridgedCharSourceRange>

0 commit comments

Comments
 (0)