Skip to content

Commit d1fa767

Browse files
authored
Merge pull request #69326 from hamishknight/null-and-void
2 parents 5f3f845 + 4a4a048 commit d1fa767

File tree

10 files changed

+160
-116
lines changed

10 files changed

+160
-116
lines changed

include/swift/AST/ASTBridgingWrappers.def

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,14 @@
1919
/// The default macro to define a bridging wrapper type.
2020

2121
/// AST_BRIDGING_WRAPPER_NULLABLE(Name)
22-
/// Specifies that the given bridging wrapper should have a
23-
/// nullable raw value.
22+
/// Specifies that both a nullable and non-null variant of the wrapper should
23+
/// be created.
2424
#ifndef AST_BRIDGING_WRAPPER_NULLABLE
2525
#define AST_BRIDGING_WRAPPER_NULLABLE(Name) AST_BRIDGING_WRAPPER(Name)
2626
#endif
2727

2828
/// AST_BRIDGING_WRAPPER_NONNULL(Name)
29-
/// Specifies that the given bridging wrapper should have a
30-
/// non-null raw value.
29+
/// Specifies that only a non-null variant of the wrapper should be created.
3130
#ifndef AST_BRIDGING_WRAPPER_NONNULL
3231
#define AST_BRIDGING_WRAPPER_NONNULL(Name) AST_BRIDGING_WRAPPER(Name)
3332
#endif

include/swift/AST/CASTBridging.h

Lines changed: 38 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,14 @@ SWIFT_BEGIN_NULLABILITY_ANNOTATIONS
3838
void *_Nonnull raw; \
3939
} Bridged##Name;
4040

41+
// For nullable nodes, define both a nullable and non-null variant.
4142
#define AST_BRIDGING_WRAPPER_NULLABLE(Name) \
4243
typedef struct { \
4344
void *_Nullable raw; \
45+
} BridgedNullable##Name; \
46+
\
47+
typedef struct { \
48+
void *_Nonnull raw; \
4449
} Bridged##Name;
4550

4651
#include "swift/AST/ASTBridgingWrappers.def"
@@ -340,7 +345,7 @@ TopLevelCodeDecl_createExpr(BridgedASTContext cContext,
340345
SWIFT_NAME("BridgedReturnStmt.createParsed(_:returnKeywordLoc:expr:)")
341346
BridgedReturnStmt ReturnStmt_createParsed(BridgedASTContext cContext,
342347
BridgedSourceLoc cLoc,
343-
BridgedExpr expr);
348+
BridgedNullableExpr expr);
344349

345350
SWIFT_NAME("BridgedSequenceExpr.createParsed(_:exprs:)")
346351
BridgedSequenceExpr SequenceExpr_createParsed(BridgedASTContext cContext,
@@ -411,7 +416,7 @@ SWIFT_NAME("BridgedIfStmt.createParsed(_:ifKeywordLoc:condition:thenStmt:"
411416
BridgedIfStmt IfStmt_createParsed(BridgedASTContext cContext,
412417
BridgedSourceLoc cIfLoc, BridgedExpr cond,
413418
BridgedStmt then, BridgedSourceLoc cElseLoc,
414-
BridgedStmt elseStmt);
419+
BridgedNullableStmt elseStmt);
415420

416421
SWIFT_NAME("BridgedBraceStmt.createParsed(_:lBraceLoc:elements:rBraceLoc:)")
417422
BridgedBraceStmt BraceStmt_createParsed(BridgedASTContext cContext,
@@ -425,8 +430,8 @@ BridgedParamDecl ParamDecl_createParsed(
425430
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
426431
BridgedSourceLoc cSpecifierLoc, BridgedIdentifier cFirstName,
427432
BridgedSourceLoc cFirstNameLoc, BridgedIdentifier cSecondName,
428-
BridgedSourceLoc cSecondNameLoc, BridgedTypeRepr type,
429-
BridgedExpr defaultValue);
433+
BridgedSourceLoc cSecondNameLoc, BridgedNullableTypeRepr type,
434+
BridgedNullableExpr defaultValue);
430435

431436
SWIFT_NAME("BridgedConstructorDecl.setParsedBody(self:_:)")
432437
void ConstructorDecl_setParsedBody(BridgedConstructorDecl decl,
@@ -447,11 +452,11 @@ BridgedFuncDecl FuncDecl_createParsed(
447452
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
448453
BridgedSourceLoc cStaticLoc, BridgedSourceLoc cFuncKeywordLoc,
449454
BridgedIdentifier cName, BridgedSourceLoc cNameLoc,
450-
BridgedGenericParamList genericParamList,
455+
BridgedNullableGenericParamList genericParamList,
451456
BridgedParameterList parameterList, BridgedSourceLoc cAsyncLoc,
452-
BridgedSourceLoc cThrowsLoc, BridgedTypeRepr thrownType,
453-
BridgedTypeRepr returnType,
454-
BridgedTrailingWhereClause opaqueGenericWhereClause);
457+
BridgedSourceLoc cThrowsLoc, BridgedNullableTypeRepr thrownType,
458+
BridgedNullableTypeRepr returnType,
459+
BridgedNullableTrailingWhereClause opaqueGenericWhereClause);
455460

456461
SWIFT_NAME(
457462
"BridgedConstructorDecl.createParsed(_:declContext:initKeywordLoc:"
@@ -460,10 +465,10 @@ SWIFT_NAME(
460465
BridgedConstructorDecl ConstructorDecl_createParsed(
461466
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
462467
BridgedSourceLoc cInitKeywordLoc, BridgedSourceLoc cFailabilityMarkLoc,
463-
_Bool isIUO, BridgedGenericParamList genericParams,
468+
_Bool isIUO, BridgedNullableGenericParamList genericParams,
464469
BridgedParameterList parameterList, BridgedSourceLoc cAsyncLoc,
465-
BridgedSourceLoc cThrowsLoc, BridgedTypeRepr thrownType,
466-
BridgedTrailingWhereClause genericWhereClause);
470+
BridgedSourceLoc cThrowsLoc, BridgedNullableTypeRepr thrownType,
471+
BridgedNullableTrailingWhereClause genericWhereClause);
467472

468473
SWIFT_NAME(
469474
"BridgedDestructorDecl.createParsed(_:declContext:deinitKeywordLoc:)")
@@ -494,9 +499,9 @@ SWIFT_NAME(
494499
BridgedTypeAliasDecl TypeAliasDecl_createParsed(
495500
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
496501
BridgedSourceLoc cAliasKeywordLoc, BridgedIdentifier cName,
497-
BridgedSourceLoc cNameLoc, BridgedGenericParamList genericParamList,
502+
BridgedSourceLoc cNameLoc, BridgedNullableGenericParamList genericParamList,
498503
BridgedSourceLoc cEqualLoc, BridgedTypeRepr underlyingType,
499-
BridgedTrailingWhereClause genericWhereClause);
504+
BridgedNullableTrailingWhereClause genericWhereClause);
500505

501506
SWIFT_NAME("BridgedNominalTypeDecl.setParsedMembers(self:_:)")
502507
void NominalTypeDecl_setParsedMembers(BridgedNominalTypeDecl decl,
@@ -512,9 +517,9 @@ SWIFT_NAME(
512517
BridgedNominalTypeDecl EnumDecl_createParsed(
513518
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
514519
BridgedSourceLoc cEnumKeywordLoc, BridgedIdentifier cName,
515-
BridgedSourceLoc cNameLoc, BridgedGenericParamList genericParamList,
520+
BridgedSourceLoc cNameLoc, BridgedNullableGenericParamList genericParamList,
516521
BridgedArrayRef cInheritedTypes,
517-
BridgedTrailingWhereClause genericWhereClause,
522+
BridgedNullableTrailingWhereClause genericWhereClause,
518523
BridgedSourceRange cBraceRange);
519524

520525
SWIFT_NAME(
@@ -528,18 +533,18 @@ SWIFT_NAME("BridgedEnumElementDecl.createParsed(_:declContext:name:nameLoc:"
528533
BridgedEnumElementDecl EnumElementDecl_createParsed(
529534
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
530535
BridgedIdentifier cName, BridgedSourceLoc cNameLoc,
531-
BridgedParameterList parameterList, BridgedSourceLoc cEqualsLoc,
532-
BridgedExpr opaqueRawValue);
536+
BridgedNullableParameterList parameterList, BridgedSourceLoc cEqualsLoc,
537+
BridgedNullableExpr opaqueRawValue);
533538

534539
SWIFT_NAME("BridgedStructDecl.createParsed(_:declContext:structKeywordLoc:name:"
535540
"nameLoc:genericParamList:inheritedTypes:genericWhereClause:"
536541
"braceRange:)")
537542
BridgedNominalTypeDecl StructDecl_createParsed(
538543
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
539544
BridgedSourceLoc cStructKeywordLoc, BridgedIdentifier cName,
540-
BridgedSourceLoc cNameLoc, BridgedGenericParamList genericParamList,
545+
BridgedSourceLoc cNameLoc, BridgedNullableGenericParamList genericParamList,
541546
BridgedArrayRef cInheritedTypes,
542-
BridgedTrailingWhereClause genericWhereClause,
547+
BridgedNullableTrailingWhereClause genericWhereClause,
543548
BridgedSourceRange cBraceRange);
544549

545550
SWIFT_NAME(
@@ -548,9 +553,9 @@ SWIFT_NAME(
548553
BridgedNominalTypeDecl ClassDecl_createParsed(
549554
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
550555
BridgedSourceLoc cClassKeywordLoc, BridgedIdentifier cName,
551-
BridgedSourceLoc cNameLoc, BridgedGenericParamList genericParamList,
556+
BridgedSourceLoc cNameLoc, BridgedNullableGenericParamList genericParamList,
552557
BridgedArrayRef cInheritedTypes,
553-
BridgedTrailingWhereClause genericWhereClause,
558+
BridgedNullableTrailingWhereClause genericWhereClause,
554559
BridgedSourceRange cBraceRange, _Bool isActor);
555560

556561
SWIFT_NAME(
@@ -562,7 +567,7 @@ BridgedNominalTypeDecl ProtocolDecl_createParsed(
562567
BridgedSourceLoc cProtocolKeywordLoc, BridgedIdentifier cName,
563568
BridgedSourceLoc cNameLoc, BridgedArrayRef cPrimaryAssociatedTypeNames,
564569
BridgedArrayRef cInheritedTypes,
565-
BridgedTrailingWhereClause genericWhereClause,
570+
BridgedNullableTrailingWhereClause genericWhereClause,
566571
BridgedSourceRange cBraceRange);
567572

568573
SWIFT_NAME("BridgedAssociatedTypeDecl.createParsed(_:declContext:"
@@ -572,8 +577,8 @@ BridgedAssociatedTypeDecl AssociatedTypeDecl_createParsed(
572577
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
573578
BridgedSourceLoc cAssociatedtypeKeywordLoc, BridgedIdentifier cName,
574579
BridgedSourceLoc cNameLoc, BridgedArrayRef cInheritedTypes,
575-
BridgedTypeRepr opaqueDefaultType,
576-
BridgedTrailingWhereClause genericWhereClause);
580+
BridgedNullableTypeRepr opaqueDefaultType,
581+
BridgedNullableTrailingWhereClause genericWhereClause);
577582

578583
SWIFT_NAME(
579584
"BridgedExtensionDecl.createParsed(_:declContext:extensionKeywordLoc:"
@@ -582,7 +587,7 @@ BridgedExtensionDecl ExtensionDecl_createParsed(
582587
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
583588
BridgedSourceLoc cExtensionKeywordLoc, BridgedTypeRepr opaqueExtendedType,
584589
BridgedArrayRef cInheritedTypes,
585-
BridgedTrailingWhereClause genericWhereClause,
590+
BridgedNullableTrailingWhereClause genericWhereClause,
586591
BridgedSourceRange cBraceRange);
587592

588593
typedef enum ENUM_EXTENSIBILITY_ATTR(closed) {
@@ -649,7 +654,8 @@ SWIFT_NAME("BridgedGenericParamList.createParsed(_:leftAngleLoc:parameters:"
649654
"genericWhereClause:rightAngleLoc:)")
650655
BridgedGenericParamList GenericParamList_createParsed(
651656
BridgedASTContext cContext, BridgedSourceLoc cLeftAngleLoc,
652-
BridgedArrayRef cParameters, BridgedTrailingWhereClause genericWhereClause,
657+
BridgedArrayRef cParameters,
658+
BridgedNullableTrailingWhereClause genericWhereClause,
653659
BridgedSourceLoc cRightAngleLoc);
654660

655661
SWIFT_NAME(
@@ -658,7 +664,7 @@ SWIFT_NAME(
658664
BridgedGenericTypeParamDecl GenericTypeParamDecl_createParsed(
659665
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
660666
BridgedSourceLoc cEachLoc, BridgedIdentifier cName,
661-
BridgedSourceLoc cNameLoc, BridgedTypeRepr opaqueInheritedType,
667+
BridgedSourceLoc cNameLoc, BridgedNullableTypeRepr opaqueInheritedType,
662668
size_t index);
663669

664670
SWIFT_NAME(
@@ -721,13 +727,11 @@ BridgedTypeRepr DictionaryTypeRepr_createParsed(BridgedASTContext cContext,
721727

722728
SWIFT_NAME("BridgedFunctionTypeRepr.createParsed(_:argsType:asyncLoc:throwsLoc:"
723729
"thrownType:arrowLoc:resultType:)")
724-
BridgedTypeRepr FunctionTypeRepr_createParsed(BridgedASTContext cContext,
725-
BridgedTypeRepr argsTy,
726-
BridgedSourceLoc cAsyncLoc,
727-
BridgedSourceLoc cThrowsLoc,
728-
BridgedTypeRepr thrownType,
729-
BridgedSourceLoc cArrowLoc,
730-
BridgedTypeRepr resultType);
730+
BridgedTypeRepr FunctionTypeRepr_createParsed(
731+
BridgedASTContext cContext, BridgedTypeRepr argsTy,
732+
BridgedSourceLoc cAsyncLoc, BridgedSourceLoc cThrowsLoc,
733+
BridgedNullableTypeRepr thrownType, BridgedSourceLoc cArrowLoc,
734+
BridgedTypeRepr resultType);
731735

732736
SWIFT_NAME("BridgedGenericIdentTypeRepr.createParsed(_:name:nameLoc:"
733737
"genericArgs:leftAngleLoc:rightAngleLoc:)")

0 commit comments

Comments
 (0)