> On Apr 7, 2017, at 4:07 AM, Vladimir.S via swift-evolution > <[email protected]> wrote: > > On 07.04.2017 10:21, Daniel Duan via swift-evolution wrote: >> Hi all, >> >> In a discussion about inferring parameter types from default value, >> Slava brought up some performance problems caused by type inference for >> stored properties in side types: >> >> https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170313/033882.html >> >> Towards the end, the post mentioned that some Swift team members >> contemplated requiring types for stored properties in type declarations. >> I think this idea deserves some more attention. Hence this last minute >> idea-floating. >> >> In addition to solving a performance headache in implementation, >> there're always the general benefit of making type declartion more >> explicit and readable (clarity for reader should out-weigh pleasure of >> the author). Making the language slightly more consistent (we are not >> inferring types for default parameter values in function anyways). >> >> The cons for doing this are obvious too: the inference makes the >> language feels more friendly and is, undoubtedly, a beloved feature for >> many. This would be a source breaking change. >> >> Just thought I'd float the idea to gather some quick reaction. What do >> y'all think? > > Although it seems like only an implementation-side problem(i.e. "let's just > improve implementation"), I see a benefits to require type for stored > property *if* it is not obvious what the type is for *reader*. I.e. if we > have something like this, I don't think we should require a type: > struct S { > var x = 0 > }
I think there is value in requiring a type annotation there. For example, this bug would be avoided: https://twitter.com/benjaminencz/status/851892622213783552 > > but I do think it will be better to require a type in such cases : > > struct S{ > var x = something(SomeType(), 123, "123") // can be generic func > } > > > >> >> Daniel Duan _______________________________________________ >> swift-evolution mailing list [email protected] >> <mailto:[email protected]> >> https://lists.swift.org/mailman/listinfo/swift-evolution >> <https://lists.swift.org/mailman/listinfo/swift-evolution> >> > _______________________________________________ > swift-evolution mailing list > [email protected] <mailto:[email protected]> > https://lists.swift.org/mailman/listinfo/swift-evolution > <https://lists.swift.org/mailman/listinfo/swift-evolution>
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
