1414// features.
1515//
1616//
17- // LANGUAGE_FEATURE(FeatureName, SENumber, Description, Option )
17+ // LANGUAGE_FEATURE(FeatureName, SENumber, Description)
1818//
1919// The LANGUAGE_FEATURE macro describes each named feature that is
2020// introduced in Swift. It allows Swift code to check for a particular
2525// SENumber: The number assigned to this feature in the Swift Evolution
2626// process, or 0 if there isn't one.
2727// 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.
3128//
3229// Suppressible language features can be suppressed when printing
3330// an interface without having to suppress the entire declaration they're
4441#endif
4542
4643#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)
4946#endif
5047
5148#ifndef UPCOMING_FEATURE
5249# define UPCOMING_FEATURE (FeatureName, SENumber, Version ) \
53- LANGUAGE_FEATURE (FeatureName, SENumber, #FeatureName, \
54- langOpts.hasFeature(#FeatureName))
50+ LANGUAGE_FEATURE (FeatureName, SENumber, #FeatureName)
5551#endif
5652
5753#ifndef EXPERIMENTAL_FEATURE
5854// Warning: setting `AvailableInProd` to `true` on a feature means that the flag
5955// cannot be dropped in the future.
6056# define EXPERIMENTAL_FEATURE (FeatureName, AvailableInProd ) \
61- LANGUAGE_FEATURE (FeatureName, 0 , #FeatureName, \
62- langOpts.hasFeature(#FeatureName))
57+ LANGUAGE_FEATURE (FeatureName, 0 , #FeatureName)
6358#endif
6459
6560#ifndef EXPERIMENTAL_FEATURE_EXCLUDED_FROM_MODULE_INTERFACE
6661# define EXPERIMENTAL_FEATURE_EXCLUDED_FROM_MODULE_INTERFACE (FeatureName, AvailableInProd ) \
6762 EXPERIMENTAL_FEATURE (FeatureName, AvailableInProd)
6863#endif
6964
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" )
120114
121115UPCOMING_FEATURE(ConciseMagicFile, 274 , 6 )
122116UPCOMING_FEATURE(ForwardTrailingClosures, 286 , 6 )
@@ -137,8 +131,6 @@ EXPERIMENTAL_FEATURE(CodeItemMacros, false)
137131EXPERIMENTAL_FEATURE(BodyMacros, true )
138132EXPERIMENTAL_FEATURE(TupleConformances, false )
139133
140- SUPPRESSIBLE_LANGUAGE_FEATURE(ExtensionMacroAttr, 0 , " @attached(extension)" , true )
141-
142134// Whether to enable @_used and @_section attributes
143135EXPERIMENTAL_FEATURE(SymbolLinkageMarkers, true )
144136
0 commit comments