Results 163 comments of Leaf Petersen

Summarizing discussion from this morning. There are two broad approaches we could take: do something with the annotation syntax to disambiguate, or change the record type syntax. On the first...

One possibility that we didn't discuss yet is using a different infix operator for the type syntax. An idea which probably doesn't work is to use `,` without parentheses: -...

> Should we consider any place a `Future Function(...)` gets passed to a `void Function(...)` argument? Special casing `forEach` feels too limited to me. Looking at forEach seems like a...

I continue to find it a bit odd that we're going out of our way to forbid this. It's certainly something I can imagine myself using in various ways. I'd...

You can write the type, just use a typedef: ``` typedef MyData = ({int x, int _nunyaBusiness}); MyData makeMyData(int x) => ({x : x, _nunyaBusiness : something()}); MyData frobIt(MyData foo)...

> Do we _want_ people to write code like that? Using a typedef to create what sort of behaves like a nominal type but is actually just an unspeakable structural...

> That is partially what users are asking us to do with the language. Part of language design is picking a set of idioms that we think are the best...

> At that point, adding a public field to a record with a private field is no longer non-breaking I didn't follow this, can you expand on why?

We're tracking this feature request [here](https://github.com/dart-lang/language/issues/2364), so closing this in favor of that issue. Let me know if I've missed something about this request that isn't covered there.

This should almost certainly be inferred. We do toplevel inference, and this looks like a straightforward example of something we should catch, unless I'm missing something. There *are* a lot...