swiftlang / swift-book

The Swift Programming Language book
Apache License 2.0
1.76k stars 161 forks source link

Grammar does not support attributes for parameter declarations #294

Open jansorg opened 7 months ago

jansorg commented 7 months ago

Location

https://docs.swift.org/swift-book/documentation/the-swift-programming-language/declarations#Parameter-Names

Description

The grammar of a parameter does not support @ViewBuilder in the following code:

struct Some {
  init(_ condition: Bool, @ViewBuilder content: @escaping () -> Content) {
    self.condition = condition
    self.content = content
  }
}

Correction

As far as I understand, the parameter rule should support an optional prefix attributes.

This

parameter → external-parameter-name? local-parameter-name parameter-type-annotation default-argument-clause?
parameter → external-parameter-name? local-parameter-name parameter-type-annotation
parameter → external-parameter-name? local-parameter-name parameter-type-annotation ...

should become

parameter → attributes? external-parameter-name? local-parameter-name parameter-type-annotation default-argument-clause?
parameter → attributes? external-parameter-name? local-parameter-name parameter-type-annotation
parameter → attributes? external-parameter-name? local-parameter-name parameter-type-annotation ...