Seems like it should work. Maybe it is a bug that should be reported to SR.
Does this error occur for non-failable initializers? On Sat, Mar 11, 2017 at 12:33 AM David Sweeris via swift-evolution < swift-evolution@swift.org> wrote: > Is this a feature or a bug? > > class Foo { > let bar: Int > init?(someConditionBasedOnInputData: Bool) { > var localBar: Int = 0 > defer { > bar = localBar //Cannot assign to property: 'bar' is a 'let' > constant > } > if someConditionBasedOnInputData { > return nil > } > } > } > > It’d be handy to be able to do the assignment upfront in a defer block in > cases where there’s both a bunch of validation to do on the input data, and > no harm from assigning the interim values to the final values when you’re > about to return nil anyway. > > - Dave Sweeris > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution >
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution