> On Apr 7, 2017, at 12:21 AM, Daniel Duan via swift-evolution
> <[email protected]> wrote:
>
> 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.
Beyond just being more friendly, I think it could be considered a teaching
issue. A great way to introduce beginners to custom types would be something
like:
struct Point {
var x = 0.0
var y = 0.0
}
Or:
struct Person {
var name = ""
var age = 18
}
If you have to explicitly specify types for the properties, that's another
thing you need to introduce to people before you can do this.
On the other hand, a very limited form of inference might be fine here. Imagine
if we did a sort of limited, single-pass, top-down inference which only
understood a few things (literals, tuple syntax, initializer calls), stopped
once it had seen enough to infer a complete type, and rejected an expression if
it encountered something it didn't understand before finishing. That would
probably cover most simple cases, and it would probably only allow expressions
whose types were obvious enough that we could use it for arguments, too. (But
of course it would mean more code in the compiler, so it might not be worth it.)
--
Brent Royal-Gordon
Architechies
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution