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
Marijn Haverbeke
2d1dec78e7
Move mutability checking into its own pass.
...
Having it in the alias pass was slightly more efficient (finding
expression roots has to be done in both passes), but further muddled
up the already complex alias checker.
Also factors out some duplication in the mutability-checking code.
2011-09-01 16:32:38 +02:00
Marijn Haverbeke
34ae491ca9
Store arg mode and objfield mutability in their def
2011-09-01 16:32:38 +02:00
Marijn Haverbeke
9ba3fe5e40
Clean up handling of restriction contexts in alias analysis
2011-09-01 09:45:55 +02:00
Patrick Walton
614a930c51
rt: Make the dynamic stack self-describing
2011-08-31 19:19:05 -07:00
Brian Anderson
1772ee3c43
Remove a few more usages of std::str from rustc. Issue #855
2011-08-31 16:24:08 -07:00
Michael Sullivan
03ddc8fdd3
Don't check arguments types if there are an incorrect number of args. Closes #871 .
2011-08-31 16:46:46 -04:00
Michael Sullivan
7c02517f75
Check all paths return properly in blocks. Closes #874 .
2011-08-31 16:15:02 -04:00
Michael Sullivan
722fa00681
Get rid of the hack that ignores () typed things in fn tail position.
...
Closes #868 . Unfortunately, this causes certain invalid programs to
fail type-checking instead of failing type-state when a type-state
error message would probably be more intuitive. (Although, by any
reasonable interpretation of the static semantics, it technically
ought to be a type error.)
2011-08-31 16:01:25 -04:00
Brian Anderson
498e38b705
Convert uses of #fmt to #ifmt. Issue #855
2011-08-31 11:44:06 -07:00
Brian Anderson
be2ad97a61
Allow main to take istrs. Issue #855
2011-08-30 23:57:09 -07:00
Brian Anderson
eb70267e5e
Convert #env to istrs. Temporarily disable usage in rustc. Issue #855
2011-08-30 21:08:07 -07:00
Brian Anderson
0abec867c3
Support istrs as fail argument. Issue #855
2011-08-30 21:08:07 -07:00
Brian Anderson
4c936d7992
Add #ifmt extension, like #fmt but for istrs. Issue #855
2011-08-30 21:08:07 -07:00
Brian Anderson
9e2c5f77a4
Remove the %S istr conversion from #fmt
...
I want to do the #fmt transition a different way. Issue #855
2011-08-30 21:08:07 -07:00
Patrick Walton
c6a47e4087
rustc: Hoist derived tydesc GC roots up to the top of the function so the GC doesn't try to access uninitialized tydescs
2011-08-30 17:46:56 -07:00
Tim Chevalier
2e53da5126
Typecheck function preconditions
...
It turned out that function preconditions weren't getting checked
at all, so you could write a constraint on a fn decl that was total
nonsense. Fixed now.
2011-08-30 16:20:16 -07:00
Tim Chevalier
f62add95da
Eliminate an unchecked use of map::get in ppaux
2011-08-30 16:19:52 -07:00
Patrick Walton
b722dc36a5
rt: Fix logging of type-parametric resources
2011-08-30 15:56:42 -07:00
Marijn Haverbeke
7bbe8d2e8c
Stop relying on klunky hack in alias.rs
...
It assumed node_ids increased monotonically for locals, but macros
make this no longer the case, and it was a dubious assumption anyway.
It now numbers locals itself and uses that to determine which precede
which.
2011-08-30 17:03:00 +02:00
Marijn Haverbeke
61392f9f82
Clean up trans_build, factor repeated code into function
2011-08-30 14:02:20 +02:00
Marijn Haverbeke
e17e6af4f0
Change a number of result-returning functions to return @block_ctxt
...
The uniformity doesn't seem to be worth the extra noise and pointless
code being generated. If something doesn't produce a value, don't make
it return one. (For now, trans_[exprtype] things are left in the result-
returning form, even when they never return anything useful, since in
that case uniformity is arguably helpful.)
2011-08-30 13:50:58 +02:00
Marijn Haverbeke
adec3ecfe0
Remove compiler-bug-workaround that's no longer needed
2011-08-30 13:10:10 +02:00
Marijn Haverbeke
c1ba28c777
Glob-import trans_build in other trans files
...
The capitalization already prevents name clashes. Being able to refer to the
bitcode-construction primitives directly makes the code cleaner.
2011-08-30 13:04:57 +02:00
Graydon Hoare
41fb042def
Stab-in-the-dark error fix for the crashing windows tinderboxes. Helps win2 anyways.
2011-08-29 17:35:24 -07:00
Marijn Haverbeke
b623ddfb7e
Warn for exports that refer to non-existent items
...
Closes #865
2011-08-29 23:46:58 +02:00
Marijn Haverbeke
4db388ea6c
Remove obsolete exports
2011-08-29 23:46:38 +02:00
Marijn Haverbeke
eb4661fc52
Factor vector-allocation code, always allocate space for at least 4 elts
...
(This prevents the first few reallocs when growing a vector.)
2011-08-29 22:30:18 +02:00
Brian Anderson
5483b910d6
Convert a block to a fn in trans_ivec::trans_add
...
The block was not valgrind-clean
2011-08-29 11:07:42 -07:00
Marijn Haverbeke
9f41bc854d
Don't duplicate ivec-iterating loop code
...
trans_ivec is starting to look almost pleasant
2011-08-29 16:14:24 +02:00
Marijn Haverbeke
c9c5ee252a
Implement non-internal ivecs
...
Vectors are now similar to our old, pre-internal vectors, except that
they are uniquely owned, not refcounted.
Their name should probably change too, then. I've renamed them to vec
in the runtime, will do so throughout the compiler later.
2011-08-29 09:07:53 +02:00
Marijn Haverbeke
855e0a4713
Fix bug in mutable-local-marking
...
Locals passed by mutable alias weren't being marked as mutated
2011-08-29 09:01:27 +02:00
Brian Anderson
5f57a508af
Convert misc compiler bits to istrs. Issue #855
2011-08-27 18:05:59 -07:00
Brian Anderson
cffd9b8044
Convert rustc driver to istrs. Issue #855
2011-08-27 17:47:06 -07:00
Brian Anderson
7efbfea8d0
Convert rustc::syntax::ext::base to istrs. Issue #855
2011-08-27 16:55:48 -07:00
Brian Anderson
9857048929
Convert rustc::driver::session to istrs. Issue #855
2011-08-27 16:47:50 -07:00
Brian Anderson
3dc2419443
Convert rustc::syntax::codemap to istrs. Issue #855
2011-08-27 15:58:17 -07:00
Brian Anderson
9fb085560d
Convert rustc::syntax::ast_util to istrs. Issue #855
2011-08-27 15:54:46 -07:00
Brian Anderson
cbad23a747
Convert pretty-printer to istrs. Issue #855
2011-08-27 15:54:46 -07:00
Brian Anderson
675073c266
Convert parser to istrs. Issue #855
2011-08-27 15:54:46 -07:00
Brian Anderson
427d42228f
Convert rustc::syntax::eval to istrs. Issue #855
2011-08-27 15:54:45 -07:00
Brian Anderson
26516dc8d2
Convert rustc::syntax::token to istrs. Issue #855
2011-08-27 15:54:45 -07:00
Brian Anderson
58dedcd090
Convert lexer to istrs. Issue #855
2011-08-27 15:54:45 -07:00
Brian Anderson
d2ae28fc99
Convert rustc::util to istrs. Issue #855
2011-08-27 15:54:45 -07:00
Brian Anderson
54691f9a6c
Convert rustc::metadata to istrs. Issue #855
2011-08-27 15:54:45 -07:00
Brian Anderson
7d70685eef
Convert the rest of rustc::middle to istrs. Issue #855
2011-08-27 15:54:45 -07:00