@@ -86,6 +86,38 @@ public let TYPE_ATTR_KINDS = [
8686% end
8787]
8888
89+ // Schema for `DeclAttribute`s:
90+ //
91+ // - Attribute name.
92+ // - C++ class name without the 'Attr' suffix
93+ // - Options for the attribute, including:
94+ // * the declarations the attribute can appear on
95+ // * whether duplicates are allowed
96+ // - Unique attribute identifier used for serialization. This
97+ // can never be changed.
98+ //
99+ // SimpleDeclAttribute is the same, but the class becomes
100+ // SimpleDeclAttr<DAK_##NAME> on the C++ side.
101+ //
102+ // Please help ease code review/audits:
103+ // - Please place the "OnXYZ" flags together on the next line.
104+ // - Please place the non-OnXYZ flags together on the next to last line.
105+ // - Please place the unique code number on the last line.
106+ // - Please sort attributes by serialization number.
107+ // - Please create a "NOTE" comment if a unique number is skipped.
108+ //
109+ // If you're adding a new kind of "attribute" that is spelled without a leading
110+ // '@' symbol, add an entry to the `DECL_MODIFIER_KINDS` array instead.
111+ //
112+ // If you're adding a new underscored attribute here, please document it in
113+ // docs/ReferenceGuides/UnderscoredAttributes.md.
114+ public let DECL_ATTR_KINDS: [ Attribute ] = [
115+ % for attr in DECL_ATTR_KINDS :
116+ ${ make_swift_attribute ( attr) } ,
117+ % end
118+ ]
119+
120+
89121/// Schema for declaration modifiers:
90122///
91123/// - Modifier name.
0 commit comments