Commit Graph

2806 Commits

Author SHA1 Message Date
Jesse Ruderman
8e00161819 Make the pretty printer disambiguatae blocks followed by vec expressions.
Semicolons are needed here now that postfix [] is used for vec indexing (the syntax change made in rev 518dc52f85).
2011-09-09 19:47:40 -07:00
Marijn Haverbeke
db15591d89 Revert "Make for loops alias the vec elements, rather than copy them"
This reverts commit 985ef59efd.
2011-09-09 16:53:45 +02:00
Marijn Haverbeke
3ac59b0ee0 Get rid of vp2i in object field access
Closes #557
2011-09-09 15:53:10 +02:00
Marijn Haverbeke
985ef59efd Make for loops alias the vec elements, rather than copy them
The alias analysis was already assuming that it worked like this.
2011-09-09 15:34:13 +02:00
Marijn Haverbeke
0eb56e60d2 Get rid of trans::iter_sequence, use tvec::iter_vec instead 2011-09-09 15:06:06 +02:00
Marijn Haverbeke
9fb3ec95e0 Use a Phi node in trans_vec::iter_vec_raw
Rather than incrementing a spilled pointer
2011-09-09 14:20:15 +02:00
Marijn Haverbeke
139b1d1b31 Get rid of some unused upcalls
I guess these became obsolete when the communication stuff moved into
the stdlib.
2011-09-09 14:02:07 +02:00
Marijn Haverbeke
e57435f68b Don't put 0-length array in the lltype of an arg-less variant
This seems to confuse LLVM in some very specific situations.

Closes #883
2011-09-09 13:51:15 +02:00
Marijn Haverbeke
b6e6f8b810 Fix scope issue in resolution of alt-arm patterns
Closes #885
2011-09-09 12:13:18 +02:00
Patrick Walton
fb9ab95a15 rustc: When revoking a cleanup of a unique pointer, zero it out so that the GC won't try to visit it 2011-09-08 10:24:25 +02:00
Patrick Walton
7a0c9759fe rustc: Make unique pointers no longer immediates. 2011-09-08 10:24:14 +02:00
Brian Anderson
9946e467ff Export tag discriminants even for single-variant tags
I don't know exactly what's going on but this optimization is giving
me problems with the check-fast runner. I also don't see how it is
correct for external tags.
2011-09-07 10:32:58 -07:00
Marijn Haverbeke
1339d05434 Work around destructuring bug 2011-09-07 17:01:46 +02:00
Marijn Haverbeke
f3edf8dd5e Make it possible to take the value of (and bind) native fns
Closes #820
2011-09-07 12:12:20 +02:00
Tim Chevalier
8ab02f7b21 Forbid blocks from deinitializing upvars
Move expressions where the RHS is an upvar are now forbidden within
block expressions.
2011-09-06 15:27:48 -07:00
Brian Anderson
a1d71995ec Rename istr-stuff to str in rustc. Issue #855 2011-09-02 22:11:46 -07:00
Brian Anderson
f1555e2ca8 Rename ty_istr to ty_str. Issue #855 2011-09-02 22:11:46 -07:00
Brian Anderson
6217ce958e Print the type of istrs as 'str' in error messages. Issue #855 2011-09-02 22:11:46 -07:00
Brian Anderson
b16457627c Stop parsing transitional istr forms. Issue #855 2011-09-02 22:11:46 -07:00
Brian Anderson
5c49e4f4e9 Reformat. Issue #855 2011-09-02 22:11:42 -07:00
Tim Chevalier
b5f9053423 Add a constraint to trans::type_of
trans::type_of now has a constraint saying that its type argument
is statically sized. This eliminates the "impossible happened" case
in type_of. Yay!

I note that this change decreased translation time for stage2/rustc
from 16.1 s to 14.0 s. I also think many of the remaining checks
could be eliminated with some mildly clever use of constrained types
and further preconditions. Future work!
2011-09-02 19:35:17 -07:00
Tim Chevalier
bdd0417cec Handle if-check with no else correctly in typestate
Propagate the if-check constraint into the consequent even when
there's no else branch. (Oops!)
2011-09-02 19:05:27 -07:00
Patrick Walton
b329324f71 rustc: Zero out unique pointers after we drop them 2011-09-02 17:51:28 -07:00
Brian Anderson
477c1bf6e1 Remove rustc::syntax::untyped_ast. Dead code 2011-09-02 16:40:59 -07:00
Brian Anderson
72c14d5a41 Eliminate const_refcount. Issue #855 2011-09-02 15:13:41 -07:00
Patrick Walton
e68f687179 rustc: Root values spilled via do_spill() 2011-09-02 15:12:27 -07:00
Patrick Walton
670b60f027 rustc: Make the shape-emitting code aware of linearized type parameters 2011-09-02 10:27:08 -07:00
Marijn Haverbeke
785c26f7f4 Rename ivecs to vecs in the compiler 2011-09-02 16:09:41 +02:00
Marijn Haverbeke
a0e2809f54 Remove remaining evec support from trans 2011-09-02 15:56:59 +02:00
Brian Anderson
9c173f17c0 Remove lots of estr code from rustc. Issue #855 2011-09-01 23:25:33 -07:00
Brian Anderson
1d3eb4911a Remove #ifmt. Issue #855 2011-09-01 18:54:06 -07:00
Brian Anderson
418d09e547 Convert all uses of #ifmt to #fmt. Issue #855 2011-09-01 18:54:03 -07:00
Brian Anderson
6972f07510 Make #fmt and #ifmt synonymous. Issue #855 2011-09-01 17:56:25 -07:00
Brian Anderson
fc45eb785a Use #env to get the rustc version again. Issue #855 2011-09-01 17:49:39 -07:00
Tim Chevalier
786963d33d Add a constraint in trans
Experimenting with adding typestate constraints in the compiler.
Added a constraint to GEP_tag that says the variant index is in
bounds. Added necessary checks.
2011-09-01 17:41:10 -07:00
Brian Anderson
ab6bb035e5 Rename std::istr to std::str. Issue #855 2011-09-01 17:27:58 -07:00
Brian Anderson
e35c021aa4 Parse "",str as istrs. Pretty print istrs as "",str. Issue #855 2011-09-01 16:53:53 -07:00
Tim Chevalier
e412652f00 Make GEP_tag take a uint instead of an int
Seems to make more sense and avoids the need for some casts.
2011-09-01 16:32:05 -07:00
Brian Anderson
e824775d53 Remove std::str. Issue #855 2011-09-01 16:09:15 -07:00
Tim Chevalier
3690f38d79 No, not all fn constraints have the same args as the fn does, in the same order...
derp!

Closes #862
2011-09-01 15:41:09 -07:00
Marijn Haverbeke
30447e1091 Remove misleading outdated comment in alias.rs 2011-09-01 22:37:52 +02:00
Marijn Haverbeke
458ac89894 Back out copy-glue
This wasn't a good idea after all.
2011-09-01 22:37:23 +02:00
Brian Anderson
ad3dcc0689 Remove the last use of istr::to_estr from rustc. Issue #855 2011-09-01 13:21:29 -07:00
Brian Anderson
7924368268 Allow istrs as patterns. Issue #855 2011-09-01 12:14:36 -07:00
Brian Anderson
bb56a75343 Convert main functions to istrs. Issue #855 2011-09-01 12:14:35 -07:00
Brian Anderson
3fe743bc9c Remove various istr conversions. Issue #855 2011-09-01 12:14:34 -07:00
Brian Anderson
6b22640a1f Convert std::test to istrs. Issue #855 2011-09-01 12:14:31 -07:00
Brian Anderson
775b64c955 Remove the estr #fmt. Issue #855 2011-09-01 12:14:31 -07:00
Marijn Haverbeke
fb196e6ef1 Make alias analysis properly recognize closures in call position
I figured this'd break a few things, but in fact it causes no problems
whatsoever.
2011-09-01 16:38:30 +02:00
Marijn Haverbeke
6ba4eacddf Make resolve recognize upvars
Upvars are now marked with def_upvar throughout, not just when going
through freevars::lookup_def. This makes things less error-prone. One
thing to watch out for is that def_upvar is used in `for each` bodies
too, when they refer to a local outside the body.
2011-09-01 16:32:44 +02:00