| 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).
|
|
Allow writing self.f within a class that has a field f. Currently,
the compiler accepts either self.f or f. In a future commit I'll
require writing self.f and not f.
Not sure whether self.f() works if f is a method (making sure that
works next).
|
|
1. Enforce mutability declarations on class fields. Don't allow any
mutation of class fields not declared as mutable (except inside the
constructor).
2. Handle classes correctly in shape (treat classes like records).
|
|
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
|
|
|
|
|
|
|
|
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.)
|
|
Closes #2017
|
|
|
|
Instead of using the new_ prefix just name them after their type
|
|
|
|
- Move io, run and rand to core.
- Remove incorrect ctypes module (use libc).
- Remove os-specific modules for os and fs.
- Split fs between core::path and core::os.
|
|
environments
|
|
region environments"
This reverts commit 96e1bbd4a0abd2c8e76e7e02b396c5319dea7a8d.
|
|
environments
|
|
And remove spurious fails/unreachable() calls.
|
|
Add a loop {} construct for infinite loops, and use it in test
cases. See #1906 for details.
|
|
|
|
This reverts commit 0d4cb759494f9589ba57c4f2c41f5a5737ab74e0.
|
|
|
|
can parse the mutability
|
|
Closes #1931
|
|
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
|
|
|
|
|
|
|
|
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.
|
|
|