| Age | Commit message (Collapse) | Author | Lines |
|
|
|
Allow writing self.f() within a class that has a method f. In a future
commit, this syntax will be required. For now, you can write either
self.f() or f().
I added a "privacy" field to all methods (whether class methods or not),
which allowed me to refactor the AST somewhat (getting rid of the
class_item type; now there's just class_member).
|
|
The last argument of the call must be a block, and the type of this
argument must a function returning bool. `break` and `cont` are
supported in the body of the block, and return `false` or `true` from
the function. When the end of the function is reached, `true` is
implicitly returned.
for vec::all([1, 2, 3]) {|elt|
if elt == 2 { break; }
log(error, elt);
}
Issue #1619
|
|
|
|
|
|
|
|
incorrectly passing stuff through unchanged
|
|
In particular, use the ast::method type to represent a class method,
and try to reuse as much iface code as possible. (This makes sense now
since I'll be allowing polymorphic class methods.)
|
|
|
|
|
|
|
|
environments
|
|
region environments"
This reverts commit 96e1bbd4a0abd2c8e76e7e02b396c5319dea7a8d.
|
|
environments
|
|
Add a loop {} construct for infinite loops, and use it in test
cases. See #1906 for details.
|
|
can parse the mutability
|
|
This makes it possible to move them between crates without confusion,
and to instantiate them at a point where the monomorphizing
substitutions are known.
Issue #1944
|
|
|
|
The fix is to drop nested items from the encoded AST. Nested items may
themselves be inlined, but that is an independent question.
|
|
Programs using classes with fields only (no methods) compile and run,
as long as nothing refers to a class in a different crate (todo).
Also changed the AST representation of classes to have a separate
record for constructor info (instead of inlining the fields in the
item_class node), and fixed up spans and pretty-printing for
classes.
|
|
|