As implemented, no. Whether it should be affected is another topic... > On Jan 30, 2017, at 5:17 PM, James Froggatt via swift-evolution > <swift-evolution@swift.org> wrote: > > Would this affect optional chaining? ( a?.voidReturningFunc() also evaluates > to ()? ) > > ------------ Begin Message ------------ > Group: gmane.comp.lang.swift.evolution > MsgID: <1fa68175-bc14-4e61-aece-a80b79d55...@apple.com> > > >> On Jan 30, 2017, at 2:58 PM, Daniel Duan via swift-evolution >> <swift-evolution@swift.org> wrote: >> >> Hi all, >> >> Right now, expressions that evaluates to Optional<()>, >> Optional<Optional<()>>… gets special treatment when it’s unused. For example: >> >> func f(s: String) {} >> let s: String = “” >> s.map(f) // no warning here, even tho the resulting type is `Optional<()>` >> and unused. >> >> func g() throws {} >> try? g() // no warnings here neither. >> >> This is convenient, but encourages composing map/filter/reduce, etc with >> side-effect-ful functions, which we have found a few cases of in our >> production code recently. Granted, these cases could’ve been caught with >> more careful code reviews. But we wouldn’t have missed them if this >> “feature” didn’t exist. >> >> I think we should remove the special treatment so that code in the example >> above would generate a warning about `()?` being unused. Users can silence >> it manually by assigning the result to `_`. >> >> OTOH, this would undermine the convenience of `try?` when the throwing >> function don’t return anything. > > IMHO, using ‘try?’ to ignore an error result, instead of just turning it into > an optional, is an anti-pattern, and forcing users to write ‘_ = try? foo()’ > might not be so bad… > >> >> What do y’all think? >> >> Daniel Duan >> _______________________________________________ >> 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 > > > ------------- End Message ------------- > > > > From James > _______________________________________________ > 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