You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Oct 9, 2018. It is now read-only.
N: Short vers: argument returns bool, iterator itself returns (). hard to compose
N: Proposed change: the iterator passes on the bool so that they can be composed
N: Additionally want 'for' to always return (). reason: top level statements without semicolons must return ()
(agreement)
N: Might also want a newtype boolean or enum to indicate break/continue
(niko: explains 'do')
B: Newtype easier now with lang items
Change in rules for block structure (if, do, etc.) return types
N: Want this as a statement:
if cond { ... } else { ... }
foo();
N: Also want this:
let x = if cond { ... } else { ... } + 10;
N: We could insist on semicolons but it looks funny.
N: Today: if the statement begins with if, do, for, a few other such keywords
N: Parse as a statement, that is, do not continue past closing brace
N: But this could be wrong:
fn foo() -> int {
if cond { ... } else { ... } - 10
}
N: We won't parse this as intended. Today, though, we would report an error if the if does not have a unit type.
N: But there is one important case where this breaks down:
do task::spawn { ... }
N: spawn returns the task id but you sometimes don't want it.
N: ok, maybe not anymore, but it used to
N: another option: keep current parser but issue a warning is there is a binary operator on the same line as the closing right brace
B: So we're going to look at the spans?
N: Yeah, maybe.
G: not in favour of EOL-dependent algorithm
N: Graydon, even if it's just a lint warning?
N: Graydon, what about about if we just look at the next token and don't care about the spans?
G: more reasonable, yeah. "}" followed by binop.
N: OK. That's fine with me.
G: I think that's more-or-less emulating an ASI rule as a lint mode, which seems fair
N: Yes, that's the idea. Not actually affecting the parse, but still using ASI-like heuristics to issue a warning when you're probably not getting what you expect
P: Can we just do warn-unused-result?
N: Yes
G: \o/
N: I do not know how to interpret this emoticon, never have :) oh it means happy
N: let's discuss this on irc---too hard here!
Limit destructors to owned type
N: Graydon said this is what he wanted from the beginning
B: Includes borrowed pointers?
N: No borrowed or managed pointers except &static
G: well, back when the distinctions were drawn along different lines (cyclic vs. acyclic and such), but that dtors have always been limited to a small-ish set of types, those that can safely be destructed top-down w/o potentially referencing nonsense memory. just a question of figuring out what the safe subset is.
N: Any disagreement?
crickets
Multiple type bounds
N: Current syntax uses whitespace as a separator, ambiguous with rooted paths