@@ -44,6 +44,19 @@ extension ModifierGenerator {
4444 ] )
4545 )
4646 ] )
47+ // case _builtinOverride(BuiltinOverrideModifiers<R>)
48+ EnumCaseDeclSyntax ( elements: [
49+ EnumCaseElementSyntax (
50+ name: . identifier( " _builtinOverride " ) ,
51+ parameterClause: EnumCaseParameterClauseSyntax ( parameters: [
52+ EnumCaseParameterSyntax (
53+ type: IdentifierTypeSyntax ( name: . identifier( " BuiltinOverrideModifiers " ) , genericArgumentClause: GenericArgumentClauseSyntax {
54+ GenericArgumentSyntax ( argument: IdentifierTypeSyntax ( name: . identifier( " R " ) ) )
55+ } )
56+ )
57+ ] )
58+ )
59+ ] )
4760 // case _imageModifier(ImageModifierRegistry)
4861 EnumCaseDeclSyntax ( elements: [
4962 EnumCaseElementSyntax (
@@ -210,6 +223,87 @@ extension ModifierGenerator {
210223
211224 SwitchCaseSyntax ( label: . default( SwitchDefaultLabelSyntax ( ) ) ) {
212225 // try specialty modifier types
226+
227+ // _customRegistry
228+ IfExprSyntax ( conditions: ConditionElementListSyntax {
229+ ConditionElementSyntax (
230+ condition: . optionalBinding( OptionalBindingConditionSyntax (
231+ bindingSpecifier: . keyword( . let) ,
232+ pattern: IdentifierPatternSyntax ( identifier: . identifier( " modifier " ) ) ,
233+ initializer: InitializerClauseSyntax ( value: TryExprSyntax (
234+ questionOrExclamationMark: . postfixQuestionMarkToken( ) ,
235+ expression: FunctionCallExprSyntax (
236+ callee: MemberAccessExprSyntax (
237+ base: DeclReferenceExprSyntax ( baseName: . identifier( " container " ) ) ,
238+ period: . periodToken( ) ,
239+ name: . identifier( " decode " )
240+ )
241+ ) {
242+ LabeledExprSyntax ( expression: MemberAccessExprSyntax (
243+ base: TypeExprSyntax ( type: MemberTypeSyntax (
244+ baseType: IdentifierTypeSyntax ( name: . identifier( " R " ) ) ,
245+ name: . identifier( " CustomModifier " )
246+ ) ) ,
247+ period: . periodToken( ) ,
248+ name: . identifier( " self " )
249+ ) )
250+ }
251+ ) )
252+ ) )
253+ )
254+ } ) {
255+ InfixOperatorExprSyntax (
256+ leftOperand: DeclReferenceExprSyntax ( baseName: . identifier( " self " ) ) ,
257+ operator: AssignmentExprSyntax ( ) ,
258+ rightOperand: FunctionCallExprSyntax (
259+ callee: MemberAccessExprSyntax ( name: . identifier( " _customRegistry " ) )
260+ ) {
261+ LabeledExprSyntax ( expression: DeclReferenceExprSyntax ( baseName: . identifier( " modifier " ) ) )
262+ }
263+ )
264+ ReturnStmtSyntax ( )
265+ }
266+
267+ // _builtinOverride
268+ IfExprSyntax ( conditions: ConditionElementListSyntax {
269+ ConditionElementSyntax (
270+ condition: . optionalBinding( OptionalBindingConditionSyntax (
271+ bindingSpecifier: . keyword( . let) ,
272+ pattern: IdentifierPatternSyntax ( identifier: . identifier( " modifier " ) ) ,
273+ initializer: InitializerClauseSyntax ( value: TryExprSyntax (
274+ questionOrExclamationMark: . postfixQuestionMarkToken( ) ,
275+ expression: FunctionCallExprSyntax (
276+ callee: MemberAccessExprSyntax (
277+ base: DeclReferenceExprSyntax ( baseName: . identifier( " container " ) ) ,
278+ period: . periodToken( ) ,
279+ name: . identifier( " decode " )
280+ )
281+ ) {
282+ LabeledExprSyntax ( expression: MemberAccessExprSyntax (
283+ base: TypeExprSyntax ( type: IdentifierTypeSyntax ( name: . identifier( " BuiltinOverrideModifiers " ) , genericArgumentClause: GenericArgumentClauseSyntax {
284+ GenericArgumentSyntax ( argument: IdentifierTypeSyntax ( name: . identifier( " R " ) ) )
285+ } ) ) ,
286+ period: . periodToken( ) ,
287+ name: . identifier( " self " )
288+ ) )
289+ }
290+ ) )
291+ ) )
292+ )
293+ } ) {
294+ InfixOperatorExprSyntax (
295+ leftOperand: DeclReferenceExprSyntax ( baseName: . identifier( " self " ) ) ,
296+ operator: AssignmentExprSyntax ( ) ,
297+ rightOperand: FunctionCallExprSyntax (
298+ callee: MemberAccessExprSyntax ( name: . identifier( " _builtinOverride " ) )
299+ ) {
300+ LabeledExprSyntax ( expression: DeclReferenceExprSyntax ( baseName: . identifier( " modifier " ) ) )
301+ }
302+ )
303+ ReturnStmtSyntax ( )
304+ }
305+
306+ // _imageModifier
213307 IfExprSyntax ( conditions: ConditionElementListSyntax {
214308 ConditionElementSyntax (
215309 condition: . optionalBinding( OptionalBindingConditionSyntax (
@@ -246,6 +340,7 @@ extension ModifierGenerator {
246340 ReturnStmtSyntax ( )
247341 }
248342
343+ // _shapeFinalizerModifier
249344 IfExprSyntax ( conditions: ConditionElementListSyntax {
250345 ConditionElementSyntax (
251346 condition: . optionalBinding( OptionalBindingConditionSyntax (
@@ -419,6 +514,26 @@ extension ModifierGenerator {
419514 }
420515 }
421516
517+ // case let ._builtinOverride(modifier)
518+ SwitchCaseSyntax ( label: . case( SwitchCaseLabelSyntax {
519+ SwitchCaseItemSyntax ( pattern: ValueBindingPatternSyntax (
520+ bindingSpecifier: . keyword( . let) ,
521+ pattern: ExpressionPatternSyntax ( expression: FunctionCallExprSyntax (
522+ callee: MemberAccessExprSyntax ( name: . identifier( " _builtinOverride " ) )
523+ ) {
524+ LabeledExprSyntax ( expression: PatternExprSyntax ( pattern: IdentifierPatternSyntax ( identifier: . identifier( " modifier " ) ) ) )
525+ } )
526+ ) )
527+ } ) ) {
528+ FunctionCallExprSyntax ( callee: MemberAccessExprSyntax (
529+ base: DeclReferenceExprSyntax ( baseName: . identifier( " content " ) ) ,
530+ period: . periodToken( ) ,
531+ name: . identifier( " modifier " )
532+ ) ) {
533+ LabeledExprSyntax ( expression: DeclReferenceExprSyntax ( baseName: . identifier( " modifier " ) ) )
534+ }
535+ }
536+
422537 // case let ._imageModifier(modifier)
423538 SwitchCaseSyntax ( label: . case( SwitchCaseLabelSyntax {
424539 SwitchCaseItemSyntax ( pattern: ValueBindingPatternSyntax (
0 commit comments