14
14
// features.
15
15
//
16
16
//
17
- // LANGUAGE_FEATURE(FeatureName, SENumber, Description, Option )
17
+ // LANGUAGE_FEATURE(FeatureName, SENumber, Description)
18
18
//
19
19
// The LANGUAGE_FEATURE macro describes each named feature that is
20
20
// introduced in Swift. It allows Swift code to check for a particular
25
25
// SENumber: The number assigned to this feature in the Swift Evolution
26
26
// process, or 0 if there isn't one.
27
27
// Description: A string literal describing the feature.
28
- // Option: either a reference to a language option in the form
29
- // "langOpts.<option name>" or "true" to indicate that it's always
30
- // enabled.
31
28
//
32
29
// Suppressible language features can be suppressed when printing
33
30
// an interface without having to suppress the entire declaration they're
44
41
#endif
45
42
46
43
#ifndef SUPPRESSIBLE_LANGUAGE_FEATURE
47
- #define SUPPRESSIBLE_LANGUAGE_FEATURE (FeatureName, SENumber, Description, Option ) \
48
- LANGUAGE_FEATURE (FeatureName, SENumber, Description, Option )
44
+ #define SUPPRESSIBLE_LANGUAGE_FEATURE (FeatureName, SENumber, Description ) \
45
+ LANGUAGE_FEATURE (FeatureName, SENumber, Description)
49
46
#endif
50
47
51
48
#ifndef UPCOMING_FEATURE
52
49
# define UPCOMING_FEATURE (FeatureName, SENumber, Version ) \
53
- LANGUAGE_FEATURE (FeatureName, SENumber, #FeatureName, \
54
- langOpts.hasFeature(#FeatureName))
50
+ LANGUAGE_FEATURE (FeatureName, SENumber, #FeatureName)
55
51
#endif
56
52
57
53
#ifndef EXPERIMENTAL_FEATURE
58
54
// Warning: setting `AvailableInProd` to `true` on a feature means that the flag
59
55
// cannot be dropped in the future.
60
56
# define EXPERIMENTAL_FEATURE (FeatureName, AvailableInProd ) \
61
- LANGUAGE_FEATURE (FeatureName, 0 , #FeatureName, \
62
- langOpts.hasFeature(#FeatureName))
57
+ LANGUAGE_FEATURE (FeatureName, 0 , #FeatureName)
63
58
#endif
64
59
65
60
#ifndef EXPERIMENTAL_FEATURE_EXCLUDED_FROM_MODULE_INTERFACE
66
61
# define EXPERIMENTAL_FEATURE_EXCLUDED_FROM_MODULE_INTERFACE (FeatureName, AvailableInProd ) \
67
62
EXPERIMENTAL_FEATURE (FeatureName, AvailableInProd)
68
63
#endif
69
64
70
- LANGUAGE_FEATURE (AsyncAwait, 296 , " async/await" , true )
71
- LANGUAGE_FEATURE(EffectfulProp, 310 , " Effectful properties" , true )
72
- LANGUAGE_FEATURE(MarkerProtocol, 0 , " @_marker protocol" , true )
73
- LANGUAGE_FEATURE(Actors, 0 , " actors" , true )
74
- LANGUAGE_FEATURE(ConcurrentFunctions, 0 , " @concurrent functions" , true )
75
- LANGUAGE_FEATURE(RethrowsProtocol, 0 , " @rethrows protocol" , true )
76
- LANGUAGE_FEATURE(GlobalActors, 316 , " Global actors" , true )
77
- LANGUAGE_FEATURE(BuiltinJob, 0 , " Builtin.Job type" , true )
78
- LANGUAGE_FEATURE(Sendable, 0 , " Sendable and @Sendable" , true )
79
- LANGUAGE_FEATURE(BuiltinExecutor, 0 , " Builtin.Executor type" , true )
80
- LANGUAGE_FEATURE(BuiltinContinuation, 0 , " Continuation builtins" , true )
81
- LANGUAGE_FEATURE(BuiltinHopToActor, 0 , " Builtin.HopToActor" , true )
82
- LANGUAGE_FEATURE(BuiltinTaskGroupWithArgument, 0 , " TaskGroup builtins" , true )
83
- LANGUAGE_FEATURE(InheritActorContext, 0 , " @_inheritActorContext attribute" , true )
84
- LANGUAGE_FEATURE(ImplicitSelfCapture, 0 , " @_implicitSelfCapture attribute" , true )
85
- LANGUAGE_FEATURE(BuiltinBuildTaskExecutor, 0 , " TaskExecutor-building builtins" , true )
86
- LANGUAGE_FEATURE(BuiltinBuildExecutor, 0 , " Executor-building builtins" , true )
87
- LANGUAGE_FEATURE(BuiltinBuildComplexEqualityExecutor, 0 , " Executor-building for 'complexEquality executor' builtins" , true )
88
- LANGUAGE_FEATURE(BuiltinBuildMainExecutor, 0 , " MainActor executor building builtin" , true )
89
- LANGUAGE_FEATURE(BuiltinCreateAsyncTaskInGroup, 0 , " Task create in task group builtin with extra flags" , true )
90
- LANGUAGE_FEATURE(BuiltinCreateAsyncTaskInGroupWithExecutor, 0 , " Task create in task group builtin with extra flags" , true )
91
- LANGUAGE_FEATURE(BuiltinCreateAsyncTaskWithExecutor, 0 , " Task create builtin with extra executor preference" , true )
92
- LANGUAGE_FEATURE(BuiltinCopy, 0 , " Builtin.copy()" , true )
93
- LANGUAGE_FEATURE(BuiltinStackAlloc, 0 , " Builtin.stackAlloc" , true )
94
- LANGUAGE_FEATURE(BuiltinUnprotectedStackAlloc, 0 , " Builtin.unprotectedStackAlloc" , true )
95
- LANGUAGE_FEATURE(BuiltinAllocVector, 0 , " Builtin.allocVector" , true )
96
- LANGUAGE_FEATURE(BuiltinTaskRunInline, 0 , " Builtin.taskRunInline" , true )
97
- LANGUAGE_FEATURE(BuiltinUnprotectedAddressOf, 0 , " Builtin.unprotectedAddressOf" , true )
98
- LANGUAGE_FEATURE(NewCxxMethodSafetyHeuristics, 0 , " Only import C++ methods that return pointers (projections) on owned types as unsafe" , true )
99
- SUPPRESSIBLE_LANGUAGE_FEATURE(SpecializeAttributeWithAvailability, 0 , " @_specialize attribute with availability" , true )
100
- LANGUAGE_FEATURE(BuiltinAssumeAlignment, 0 , " Builtin.assumeAlignment" , true )
101
- LANGUAGE_FEATURE(BuiltinCreateTaskGroupWithFlags, 0 , " Builtin.createTaskGroupWithFlags" , true )
102
- SUPPRESSIBLE_LANGUAGE_FEATURE(UnsafeInheritExecutor, 0 , " @_unsafeInheritExecutor" , true )
103
- SUPPRESSIBLE_LANGUAGE_FEATURE(PrimaryAssociatedTypes2, 346 , " Primary associated types" , true )
104
- SUPPRESSIBLE_LANGUAGE_FEATURE(UnavailableFromAsync, 0 , " @_unavailableFromAsync" , true )
105
- SUPPRESSIBLE_LANGUAGE_FEATURE(NoAsyncAvailability, 340 , " @available(*, noasync)" , true )
106
- LANGUAGE_FEATURE(BuiltinIntLiteralAccessors, 368 , " Builtin.IntLiteral accessors" , true )
107
- LANGUAGE_FEATURE(Macros, 0 , " Macros" , hasSwiftSwiftParser)
108
- LANGUAGE_FEATURE(
109
- FreestandingExpressionMacros, 382 , " Expression macros" ,
110
- hasSwiftSwiftParser)
111
- LANGUAGE_FEATURE(AttachedMacros, 389 , " Attached macros" , hasSwiftSwiftParser)
112
- LANGUAGE_FEATURE(ExtensionMacros, 402 , " Extension macros" , hasSwiftSwiftParser)
113
- LANGUAGE_FEATURE(MoveOnly, 390 , " noncopyable types" , true )
114
- LANGUAGE_FEATURE(MoveOnlyResilientTypes, 390 , " non-@frozen noncopyable types with library evolution" , true )
115
- LANGUAGE_FEATURE(ParameterPacks, 393 , " Value and type parameter packs" , true )
116
- SUPPRESSIBLE_LANGUAGE_FEATURE(LexicalLifetimes, 0 , " @_eagerMove/@_noEagerMove/@_lexicalLifetimes annotations" , true )
117
- LANGUAGE_FEATURE(FreestandingMacros, 397 , " freestanding declaration macros" , true )
118
- SUPPRESSIBLE_LANGUAGE_FEATURE(RetroactiveAttribute, 364 , " @retroactive" , true )
119
- LANGUAGE_FEATURE(TypedThrows, 413 , " Typed throws" , true )
65
+ LANGUAGE_FEATURE (AsyncAwait, 296 , " async/await" )
66
+ LANGUAGE_FEATURE(EffectfulProp, 310 , " Effectful properties" )
67
+ LANGUAGE_FEATURE(MarkerProtocol, 0 , " @_marker protocol" )
68
+ LANGUAGE_FEATURE(Actors, 0 , " actors" )
69
+ LANGUAGE_FEATURE(ConcurrentFunctions, 0 , " @concurrent functions" )
70
+ LANGUAGE_FEATURE(RethrowsProtocol, 0 , " @rethrows protocol" )
71
+ LANGUAGE_FEATURE(GlobalActors, 316 , " Global actors" )
72
+ LANGUAGE_FEATURE(BuiltinJob, 0 , " Builtin.Job type" )
73
+ LANGUAGE_FEATURE(Sendable, 0 , " Sendable and @Sendable" )
74
+ LANGUAGE_FEATURE(BuiltinExecutor, 0 , " Builtin.Executor type" )
75
+ LANGUAGE_FEATURE(BuiltinContinuation, 0 , " Continuation builtins" )
76
+ LANGUAGE_FEATURE(BuiltinHopToActor, 0 , " Builtin.HopToActor" )
77
+ LANGUAGE_FEATURE(BuiltinTaskGroupWithArgument, 0 , " TaskGroup builtins" )
78
+ LANGUAGE_FEATURE(InheritActorContext, 0 , " @_inheritActorContext attribute" )
79
+ LANGUAGE_FEATURE(ImplicitSelfCapture, 0 , " @_implicitSelfCapture attribute" )
80
+ LANGUAGE_FEATURE(BuiltinBuildTaskExecutor, 0 , " TaskExecutor-building builtins" )
81
+ LANGUAGE_FEATURE(BuiltinBuildExecutor, 0 , " Executor-building builtins" )
82
+ LANGUAGE_FEATURE(BuiltinBuildComplexEqualityExecutor, 0 , " Executor-building for 'complexEquality executor' builtins" )
83
+ LANGUAGE_FEATURE(BuiltinBuildMainExecutor, 0 , " MainActor executor building builtin" )
84
+ LANGUAGE_FEATURE(BuiltinCreateAsyncTaskInGroup, 0 , " Task create in task group builtin with extra flags" )
85
+ LANGUAGE_FEATURE(BuiltinCreateAsyncTaskInGroupWithExecutor, 0 , " Task create in task group builtin with extra flags" )
86
+ LANGUAGE_FEATURE(BuiltinCreateAsyncTaskWithExecutor, 0 , " Task create builtin with extra executor preference" )
87
+ LANGUAGE_FEATURE(BuiltinCopy, 0 , " Builtin.copy()" )
88
+ LANGUAGE_FEATURE(BuiltinStackAlloc, 0 , " Builtin.stackAlloc" )
89
+ LANGUAGE_FEATURE(BuiltinUnprotectedStackAlloc, 0 , " Builtin.unprotectedStackAlloc" )
90
+ LANGUAGE_FEATURE(BuiltinAllocVector, 0 , " Builtin.allocVector" )
91
+ LANGUAGE_FEATURE(BuiltinTaskRunInline, 0 , " Builtin.taskRunInline" )
92
+ LANGUAGE_FEATURE(BuiltinUnprotectedAddressOf, 0 , " Builtin.unprotectedAddressOf" )
93
+ LANGUAGE_FEATURE(NewCxxMethodSafetyHeuristics, 0 , " Only import C++ methods that return pointers (projections) on owned types as unsafe" )
94
+ SUPPRESSIBLE_LANGUAGE_FEATURE(SpecializeAttributeWithAvailability, 0 , " @_specialize attribute with availability" )
95
+ LANGUAGE_FEATURE(BuiltinAssumeAlignment, 0 , " Builtin.assumeAlignment" )
96
+ LANGUAGE_FEATURE(BuiltinCreateTaskGroupWithFlags, 0 , " Builtin.createTaskGroupWithFlags" )
97
+ SUPPRESSIBLE_LANGUAGE_FEATURE(UnsafeInheritExecutor, 0 , " @_unsafeInheritExecutor" )
98
+ SUPPRESSIBLE_LANGUAGE_FEATURE(PrimaryAssociatedTypes2, 346 , " Primary associated types" )
99
+ SUPPRESSIBLE_LANGUAGE_FEATURE(UnavailableFromAsync, 0 , " @_unavailableFromAsync" )
100
+ SUPPRESSIBLE_LANGUAGE_FEATURE(NoAsyncAvailability, 340 , " @available(*, noasync)" )
101
+ LANGUAGE_FEATURE(BuiltinIntLiteralAccessors, 368 , " Builtin.IntLiteral accessors" )
102
+ LANGUAGE_FEATURE(Macros, 0 , " Macros" )
103
+ LANGUAGE_FEATURE(FreestandingExpressionMacros, 382 , " Expression macros" )
104
+ LANGUAGE_FEATURE(AttachedMacros, 389 , " Attached macros" )
105
+ LANGUAGE_FEATURE(ExtensionMacros, 402 , " Extension macros" )
106
+ LANGUAGE_FEATURE(MoveOnly, 390 , " noncopyable types" )
107
+ LANGUAGE_FEATURE(MoveOnlyResilientTypes, 390 , " non-@frozen noncopyable types with library evolution" )
108
+ LANGUAGE_FEATURE(ParameterPacks, 393 , " Value and type parameter packs" )
109
+ SUPPRESSIBLE_LANGUAGE_FEATURE(LexicalLifetimes, 0 , " @_eagerMove/@_noEagerMove/@_lexicalLifetimes annotations" )
110
+ LANGUAGE_FEATURE(FreestandingMacros, 397 , " freestanding declaration macros" )
111
+ SUPPRESSIBLE_LANGUAGE_FEATURE(RetroactiveAttribute, 364 , " @retroactive" )
112
+ SUPPRESSIBLE_LANGUAGE_FEATURE(ExtensionMacroAttr, 0 , " @attached(extension)" )
113
+ LANGUAGE_FEATURE(TypedThrows, 413 , " Typed throws" )
120
114
121
115
UPCOMING_FEATURE(ConciseMagicFile, 274 , 6 )
122
116
UPCOMING_FEATURE(ForwardTrailingClosures, 286 , 6 )
@@ -137,8 +131,6 @@ EXPERIMENTAL_FEATURE(CodeItemMacros, false)
137
131
EXPERIMENTAL_FEATURE(BodyMacros, true )
138
132
EXPERIMENTAL_FEATURE(TupleConformances, false )
139
133
140
- SUPPRESSIBLE_LANGUAGE_FEATURE(ExtensionMacroAttr, 0 , " @attached(extension)" , true )
141
-
142
134
// Whether to enable @_used and @_section attributes
143
135
EXPERIMENTAL_FEATURE(SymbolLinkageMarkers, true )
144
136
0 commit comments