- Proposal: TBD
- Authors: Matthew Johnson, Erica Sadun, Rob Napier
- Status: TBD
- Review manager: TBD
This proposal loosens closure requirements to provide developer flexibility. It removes the _ in
requirement
func dispatch_sync<R> (queue: dispatch_queue_t, block: Void -> R ) -> R { | |
var result: R! | |
dispatch_sync(queue) { | |
result = block() | |
} | |
return result | |
} | |
func result() -> String { | |
return |
This proposal loosens closure requirements to provide developer flexibility. It removes the _ in
requirement
// I know you meant it to be exaggerated, but I still think this is the better approach in practice: | |
enum ClassError: Error { | |
case propertyNotFound(name: String) | |
case typeMismatch(propertyName: String) | |
} | |
class Foo { | |
var properties: [(String, Any)] = [] | |
private func validateValue(_ value: Any, for property: String) throws { // Note that I pass the name just for the error; that's ok IMO |