Skip to content

[ASTGen] Introduce nullable variants of bridging wrappers #69326

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Oct 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions include/swift/AST/ASTBridgingWrappers.def
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,14 @@
/// The default macro to define a bridging wrapper type.

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

/// AST_BRIDGING_WRAPPER_NONNULL(Name)
/// Specifies that the given bridging wrapper should have a
/// non-null raw value.
/// Specifies that only a non-null variant of the wrapper should be created.
#ifndef AST_BRIDGING_WRAPPER_NONNULL
#define AST_BRIDGING_WRAPPER_NONNULL(Name) AST_BRIDGING_WRAPPER(Name)
#endif
Expand Down
72 changes: 38 additions & 34 deletions include/swift/AST/CASTBridging.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,14 @@ SWIFT_BEGIN_NULLABILITY_ANNOTATIONS
void *_Nonnull raw; \
} Bridged##Name;

// For nullable nodes, define both a nullable and non-null variant.
#define AST_BRIDGING_WRAPPER_NULLABLE(Name) \
typedef struct { \
void *_Nullable raw; \
} BridgedNullable##Name; \
\
typedef struct { \
void *_Nonnull raw; \
} Bridged##Name;

#include "swift/AST/ASTBridgingWrappers.def"
Expand Down Expand Up @@ -340,7 +345,7 @@ TopLevelCodeDecl_createExpr(BridgedASTContext cContext,
SWIFT_NAME("BridgedReturnStmt.createParsed(_:returnKeywordLoc:expr:)")
BridgedReturnStmt ReturnStmt_createParsed(BridgedASTContext cContext,
BridgedSourceLoc cLoc,
BridgedExpr expr);
BridgedNullableExpr expr);

SWIFT_NAME("BridgedSequenceExpr.createParsed(_:exprs:)")
BridgedSequenceExpr SequenceExpr_createParsed(BridgedASTContext cContext,
Expand Down Expand Up @@ -411,7 +416,7 @@ SWIFT_NAME("BridgedIfStmt.createParsed(_:ifKeywordLoc:condition:thenStmt:"
BridgedIfStmt IfStmt_createParsed(BridgedASTContext cContext,
BridgedSourceLoc cIfLoc, BridgedExpr cond,
BridgedStmt then, BridgedSourceLoc cElseLoc,
BridgedStmt elseStmt);
BridgedNullableStmt elseStmt);

SWIFT_NAME("BridgedBraceStmt.createParsed(_:lBraceLoc:elements:rBraceLoc:)")
BridgedBraceStmt BraceStmt_createParsed(BridgedASTContext cContext,
Expand All @@ -425,8 +430,8 @@ BridgedParamDecl ParamDecl_createParsed(
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
BridgedSourceLoc cSpecifierLoc, BridgedIdentifier cFirstName,
BridgedSourceLoc cFirstNameLoc, BridgedIdentifier cSecondName,
BridgedSourceLoc cSecondNameLoc, BridgedTypeRepr type,
BridgedExpr defaultValue);
BridgedSourceLoc cSecondNameLoc, BridgedNullableTypeRepr type,
BridgedNullableExpr defaultValue);

SWIFT_NAME("BridgedConstructorDecl.setParsedBody(self:_:)")
void ConstructorDecl_setParsedBody(BridgedConstructorDecl decl,
Expand All @@ -447,11 +452,11 @@ BridgedFuncDecl FuncDecl_createParsed(
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
BridgedSourceLoc cStaticLoc, BridgedSourceLoc cFuncKeywordLoc,
BridgedIdentifier cName, BridgedSourceLoc cNameLoc,
BridgedGenericParamList genericParamList,
BridgedNullableGenericParamList genericParamList,
BridgedParameterList parameterList, BridgedSourceLoc cAsyncLoc,
BridgedSourceLoc cThrowsLoc, BridgedTypeRepr thrownType,
BridgedTypeRepr returnType,
BridgedTrailingWhereClause opaqueGenericWhereClause);
BridgedSourceLoc cThrowsLoc, BridgedNullableTypeRepr thrownType,
BridgedNullableTypeRepr returnType,
BridgedNullableTrailingWhereClause opaqueGenericWhereClause);

SWIFT_NAME(
"BridgedConstructorDecl.createParsed(_:declContext:initKeywordLoc:"
Expand All @@ -460,10 +465,10 @@ SWIFT_NAME(
BridgedConstructorDecl ConstructorDecl_createParsed(
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
BridgedSourceLoc cInitKeywordLoc, BridgedSourceLoc cFailabilityMarkLoc,
_Bool isIUO, BridgedGenericParamList genericParams,
_Bool isIUO, BridgedNullableGenericParamList genericParams,
BridgedParameterList parameterList, BridgedSourceLoc cAsyncLoc,
BridgedSourceLoc cThrowsLoc, BridgedTypeRepr thrownType,
BridgedTrailingWhereClause genericWhereClause);
BridgedSourceLoc cThrowsLoc, BridgedNullableTypeRepr thrownType,
BridgedNullableTrailingWhereClause genericWhereClause);

SWIFT_NAME(
"BridgedDestructorDecl.createParsed(_:declContext:deinitKeywordLoc:)")
Expand Down Expand Up @@ -494,9 +499,9 @@ SWIFT_NAME(
BridgedTypeAliasDecl TypeAliasDecl_createParsed(
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
BridgedSourceLoc cAliasKeywordLoc, BridgedIdentifier cName,
BridgedSourceLoc cNameLoc, BridgedGenericParamList genericParamList,
BridgedSourceLoc cNameLoc, BridgedNullableGenericParamList genericParamList,
BridgedSourceLoc cEqualLoc, BridgedTypeRepr underlyingType,
BridgedTrailingWhereClause genericWhereClause);
BridgedNullableTrailingWhereClause genericWhereClause);

SWIFT_NAME("BridgedNominalTypeDecl.setParsedMembers(self:_:)")
void NominalTypeDecl_setParsedMembers(BridgedNominalTypeDecl decl,
Expand All @@ -512,9 +517,9 @@ SWIFT_NAME(
BridgedNominalTypeDecl EnumDecl_createParsed(
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
BridgedSourceLoc cEnumKeywordLoc, BridgedIdentifier cName,
BridgedSourceLoc cNameLoc, BridgedGenericParamList genericParamList,
BridgedSourceLoc cNameLoc, BridgedNullableGenericParamList genericParamList,
BridgedArrayRef cInheritedTypes,
BridgedTrailingWhereClause genericWhereClause,
BridgedNullableTrailingWhereClause genericWhereClause,
BridgedSourceRange cBraceRange);

SWIFT_NAME(
Expand All @@ -528,18 +533,18 @@ SWIFT_NAME("BridgedEnumElementDecl.createParsed(_:declContext:name:nameLoc:"
BridgedEnumElementDecl EnumElementDecl_createParsed(
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
BridgedIdentifier cName, BridgedSourceLoc cNameLoc,
BridgedParameterList parameterList, BridgedSourceLoc cEqualsLoc,
BridgedExpr opaqueRawValue);
BridgedNullableParameterList parameterList, BridgedSourceLoc cEqualsLoc,
BridgedNullableExpr opaqueRawValue);

SWIFT_NAME("BridgedStructDecl.createParsed(_:declContext:structKeywordLoc:name:"
"nameLoc:genericParamList:inheritedTypes:genericWhereClause:"
"braceRange:)")
BridgedNominalTypeDecl StructDecl_createParsed(
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
BridgedSourceLoc cStructKeywordLoc, BridgedIdentifier cName,
BridgedSourceLoc cNameLoc, BridgedGenericParamList genericParamList,
BridgedSourceLoc cNameLoc, BridgedNullableGenericParamList genericParamList,
BridgedArrayRef cInheritedTypes,
BridgedTrailingWhereClause genericWhereClause,
BridgedNullableTrailingWhereClause genericWhereClause,
BridgedSourceRange cBraceRange);

SWIFT_NAME(
Expand All @@ -548,9 +553,9 @@ SWIFT_NAME(
BridgedNominalTypeDecl ClassDecl_createParsed(
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
BridgedSourceLoc cClassKeywordLoc, BridgedIdentifier cName,
BridgedSourceLoc cNameLoc, BridgedGenericParamList genericParamList,
BridgedSourceLoc cNameLoc, BridgedNullableGenericParamList genericParamList,
BridgedArrayRef cInheritedTypes,
BridgedTrailingWhereClause genericWhereClause,
BridgedNullableTrailingWhereClause genericWhereClause,
BridgedSourceRange cBraceRange, _Bool isActor);

SWIFT_NAME(
Expand All @@ -562,7 +567,7 @@ BridgedNominalTypeDecl ProtocolDecl_createParsed(
BridgedSourceLoc cProtocolKeywordLoc, BridgedIdentifier cName,
BridgedSourceLoc cNameLoc, BridgedArrayRef cPrimaryAssociatedTypeNames,
BridgedArrayRef cInheritedTypes,
BridgedTrailingWhereClause genericWhereClause,
BridgedNullableTrailingWhereClause genericWhereClause,
BridgedSourceRange cBraceRange);

SWIFT_NAME("BridgedAssociatedTypeDecl.createParsed(_:declContext:"
Expand All @@ -572,8 +577,8 @@ BridgedAssociatedTypeDecl AssociatedTypeDecl_createParsed(
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
BridgedSourceLoc cAssociatedtypeKeywordLoc, BridgedIdentifier cName,
BridgedSourceLoc cNameLoc, BridgedArrayRef cInheritedTypes,
BridgedTypeRepr opaqueDefaultType,
BridgedTrailingWhereClause genericWhereClause);
BridgedNullableTypeRepr opaqueDefaultType,
BridgedNullableTrailingWhereClause genericWhereClause);

SWIFT_NAME(
"BridgedExtensionDecl.createParsed(_:declContext:extensionKeywordLoc:"
Expand All @@ -582,7 +587,7 @@ BridgedExtensionDecl ExtensionDecl_createParsed(
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
BridgedSourceLoc cExtensionKeywordLoc, BridgedTypeRepr opaqueExtendedType,
BridgedArrayRef cInheritedTypes,
BridgedTrailingWhereClause genericWhereClause,
BridgedNullableTrailingWhereClause genericWhereClause,
BridgedSourceRange cBraceRange);

typedef enum ENUM_EXTENSIBILITY_ATTR(closed) {
Expand Down Expand Up @@ -649,7 +654,8 @@ SWIFT_NAME("BridgedGenericParamList.createParsed(_:leftAngleLoc:parameters:"
"genericWhereClause:rightAngleLoc:)")
BridgedGenericParamList GenericParamList_createParsed(
BridgedASTContext cContext, BridgedSourceLoc cLeftAngleLoc,
BridgedArrayRef cParameters, BridgedTrailingWhereClause genericWhereClause,
BridgedArrayRef cParameters,
BridgedNullableTrailingWhereClause genericWhereClause,
BridgedSourceLoc cRightAngleLoc);

SWIFT_NAME(
Expand All @@ -658,7 +664,7 @@ SWIFT_NAME(
BridgedGenericTypeParamDecl GenericTypeParamDecl_createParsed(
BridgedASTContext cContext, BridgedDeclContext cDeclContext,
BridgedSourceLoc cEachLoc, BridgedIdentifier cName,
BridgedSourceLoc cNameLoc, BridgedTypeRepr opaqueInheritedType,
BridgedSourceLoc cNameLoc, BridgedNullableTypeRepr opaqueInheritedType,
size_t index);

SWIFT_NAME(
Expand Down Expand Up @@ -721,13 +727,11 @@ BridgedTypeRepr DictionaryTypeRepr_createParsed(BridgedASTContext cContext,

SWIFT_NAME("BridgedFunctionTypeRepr.createParsed(_:argsType:asyncLoc:throwsLoc:"
"thrownType:arrowLoc:resultType:)")
BridgedTypeRepr FunctionTypeRepr_createParsed(BridgedASTContext cContext,
BridgedTypeRepr argsTy,
BridgedSourceLoc cAsyncLoc,
BridgedSourceLoc cThrowsLoc,
BridgedTypeRepr thrownType,
BridgedSourceLoc cArrowLoc,
BridgedTypeRepr resultType);
BridgedTypeRepr FunctionTypeRepr_createParsed(
BridgedASTContext cContext, BridgedTypeRepr argsTy,
BridgedSourceLoc cAsyncLoc, BridgedSourceLoc cThrowsLoc,
BridgedNullableTypeRepr thrownType, BridgedSourceLoc cArrowLoc,
BridgedTypeRepr resultType);

SWIFT_NAME("BridgedGenericIdentTypeRepr.createParsed(_:name:nameLoc:"
"genericArgs:leftAngleLoc:rightAngleLoc:)")
Expand Down
Loading