| Age | Commit message (Collapse) | Author | Lines |
|
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).
|
|
|
|
Also adds proper checking for cont/break being inside a loop.
Closes #1854
Issue #1619
|
|
This change uses the same code for handling the "self" reference for
classes as is already used for impls/ifaces. This allows removing the
extra maybe_self_id argument (which was just for classes) to trans_closure
that I added before. I also rewrote the translation for class ctors so
that it doesn't generate new AST nodes (instead translating directly).
Also changed visit so that it visits class ctors correctly with visit_fn,
and changed typestate to not do return-checking when visiting a class ctor.
|
|
|
|
|
|
|
|
Something strange is happening to hash maps. I'm still investigating but
want to get my snapshot built in the meantime. (Problem only happened on
OS X.)
|
|
|
|
|
|
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 #1911
|
|
Cross-crate metadata for classes works well enough that programs with
classes in other crates compile successfully, but output wrong results.
Checking in work so far to avoid merge hassles. (Tests are xfailed.)
|
|
Instead of using the new_ prefix just name them after their type
|
|
|
|
Talked on #rust about this change, got approval from graydon and brson. Will bring up tomorrow at meeting to verify.
|
|
And remove spurious fails/unreachable() calls.
|
|
|
|
This reverts commit 0d4cb759494f9589ba57c4f2c41f5a5737ab74e0.
|
|
|
|
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
|
|
This is needed because the reachability checker needs to be able to
follow exports.
Issue #1934
|
|
|
|
|
|
|
|
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.
|
|
|