Tim Chevalier
7d05bea7b9
Fix bug with * patterns in trans_alt
...
enter_opt was handling the (*) case wrong and causing a bounds check
failure. Fixed it (the test case is one of the extracted ones from
the reference manual)
2012-04-23 15:50:51 -07:00
Niko Matsakis
71128e75b0
moderate comment, remove some dead regions code
2012-04-23 08:02:59 -07:00
Niko Matsakis
7113a2c30b
remove dead code
2012-04-23 08:02:59 -07:00
Niko Matsakis
4eb71c07c6
remove outdated comment
2012-04-23 08:02:59 -07:00
Niko Matsakis
30d563839e
Various regions fixes.
2012-04-23 08:02:59 -07:00
Niko Matsakis
0d3658bb43
rewrite the resolution infrastructure; but it's still grody
2012-04-23 08:02:58 -07:00
Marijn Haverbeke
68f8812511
Guard against infinitely expanding generic/inline functions
...
Closes #2220
Test case disabled until a memory-leak issue is resolved.
2012-04-23 16:44:52 +02:00
Marijn Haverbeke
2782cfb783
Emit a more useful error when using an unsuitable function for a loop
...
Closes #2255
2012-04-23 15:43:29 +02:00
Marijn Haverbeke
9053f54498
Move map iface over to more for
-friendly iteration methods
2012-04-23 15:18:19 +02:00
Marijn Haverbeke
a872a99bfe
Simplify representation of ast::path
2012-04-23 13:04:46 +02:00
Marijn Haverbeke
587d8a5d4f
Misc code cleanups using list::each for list iteration
2012-04-23 12:13:59 +02:00
Marijn Haverbeke
dfdca5d538
Fix broken determination of external method type param count
...
Closes #2185
2012-04-23 09:25:14 +02:00
Brian Anderson
734494a04d
rustc: Cache constant C strings. Closes #2264
2012-04-21 14:26:13 -07:00
Tim Chevalier
734166f41c
Print out return type correctly in typestate error message
...
In the "not all paths return" error message, typestate was printing
the AST type from the fn decl, not the ty::t type. This ended in tears
when the AST return type was "ty_infer". Now it looks up the function node
ID's type and uses util::ppaux::ty_to_str instead.
Closes #2163 .
2012-04-20 18:48:08 -07:00
Graydon Hoare
14d0509691
Log decoded inline_items when debug is active.
2012-04-20 17:18:42 -07:00
Graydon Hoare
355422ddbd
Implement tydecode::parse_vstore.
2012-04-20 17:18:42 -07:00
Graydon Hoare
90f82e171d
Get borrowing working on fixed evecs.
2012-04-20 12:11:55 -07:00
Tim Chevalier
37b0549730
Add new syntax for patterns that match the head constructor only
...
Adds a new kind of pattern C(*) where C is a constructor that may
have any number of fields. This pattern matches any value
constructed with C, without binding names for any of the fields.
Closes #1701 .
2012-04-20 00:56:46 -07:00
Niko Matsakis
3c995fb8f3
make nominal types optionally parameterized by a self region.
...
Issue #2201 .
2012-04-19 21:01:11 -07:00
Niko Matsakis
f3f34bf09b
correct universally_quantify to use structure_of, and introduce a test for this
2012-04-19 21:01:11 -07:00
Tim Chevalier
31ff64c62d
Annotate FIXMEs in parser
...
Also, get rid of two FIXMEs by refactoring some code, and moving the
call_expr check for be expressions into typeck, where it seems to
make more sense.
2012-04-19 19:17:59 -07:00
Tim Chevalier
cdc8722f95
Add a lint pass to check for while true { ... } loops
...
And suggest changing them to loop { ... }. Had to fix the few
remaining while true loops (in core::io). Closes #1962 .
2012-04-19 18:14:38 -07:00
Graydon Hoare
f641dce852
Get evec slices and unique-evec slice-borrowing working.
2012-04-19 16:51:37 -07:00
Tim Chevalier
b0074c5a92
Disallow rebinding / matching against consts in alts
...
As per Issue #1193 . Closes #1193 .
I had to rename a few variables ("info" and "epsilon") to avoid
clashing with in-scope constants, which is responsible for all the
changes other than resolve and issue-1193.rs.
2012-04-19 16:21:15 -07:00
Graydon Hoare
1e51196f33
Get fixed-size evecs working.
2012-04-19 15:52:50 -07:00
Graydon Hoare
956bc773c6
Fix [] on str to exclude the trailing null.
2012-04-18 17:50:58 -07:00
Brian Anderson
9a8a04629e
syntax: Put the main parser interface in mod parse
2012-04-18 10:50:50 -07:00
Marijn Haverbeke
aa4278a3f5
Require values to be copyable when cast
...
Closes #2222
2012-04-18 17:21:39 +02:00
Marijn Haverbeke
fda7bb6721
Fix oversight in type_use.rs
...
Closes #2053
2012-04-18 17:21:39 +02:00
Marijn Haverbeke
054a312a33
Stop duplicating non-generic resource destructors
...
Closes #2177
2012-04-18 17:21:39 +02:00
Marijn Haverbeke
a0fa099469
Add a needs_drop intrinsic
...
Closes #2055
2012-04-18 13:15:02 +02:00
Marijn Haverbeke
35b8f87b89
Fix use of wrong block context in return-from-loop code
...
Closes #2142
2012-04-18 13:00:18 +02:00
Graydon Hoare
70a9ce626d
Implement slice-borrowing on estr-uniq and str values.
2012-04-17 15:15:20 -07:00
Niko Matsakis
4c26d70a0a
new debug flag, new test
2012-04-17 12:02:36 -07:00
Niko Matsakis
6b549f9f14
repair LUB/GLB of free/scope regions, and enable test
2012-04-17 12:02:36 -07:00
Niko Matsakis
58f8cb343d
change printout to be what users will expect
2012-04-17 12:02:36 -07:00
Niko Matsakis
35a93e61d4
rewrite region resolution so it takes place in typeck
2012-04-16 19:48:00 -07:00
Graydon Hoare
82727b926f
Get explicit unique estrs working.
2012-04-16 16:17:51 -07:00
Brian Anderson
dea8ae4e6f
rustc: Resolve external impls defined in yet other crates. Issue #2196
2012-04-16 14:58:58 -07:00
Brian Anderson
f466a2fa8f
rustc: -L also indicates the location of native libraries
...
-L currently specifies paths to search for Rust crates
Building crates that use native libraries is difficult. When the
library is located somewhere unexpected there is no way
to tell rustc additional paths to look in.
If libclang is located at `.` then rustc is not going to
know that and linking will fail.
To get around that I often end up inserting
#[link_args = "-L."] native mod m { }
into other crates to get them to build.
Now you just `rustc -L .` and it builds.
This doesn't do any rpathing so it's still up to somebody else
to put the library somewhere it will be found or use LD_LIBRARY_PATH
This feature comes with a single, XFAILed test, because I could
not think of a way to test it. Odd.
2012-04-16 12:33:21 -07:00
Brian Anderson
4f576275be
syntax: Cleanup attr module. Closes #1545
2012-04-15 01:43:38 -07:00
Tim Chevalier
4f4a468e84
Forbid deinitializing upvars in typestate
...
Closes #1965 .
2012-04-15 01:05:41 -07:00
Niko Matsakis
cc16165e40
implement evec/estr subtyping/lub/glb/etc
2012-04-14 18:48:58 -07:00
Brian Anderson
979a225598
rustc: Don't hardcode -lm
...
It does not appear to serve a purpose
2012-04-13 22:35:01 -07:00
Niko Matsakis
247db704a9
integrate simple notion of borrowing into trans
2012-04-13 21:06:57 -07:00
Niko Matsakis
378996092e
store into the borrowings table
2012-04-13 21:06:57 -07:00
Niko Matsakis
b3f308bec5
add initial code re: slices to borrowing, improve ty_to_str
2012-04-13 21:06:56 -07:00
Niko Matsakis
d2482fd763
use find not echo; this also brings fuzzer under the iron fist of tidy.py!
2012-04-13 11:59:17 -07:00
Niko Matsakis
27f1c2b742
first stab at type checking for borrow: not integrated into trans
2012-04-13 10:41:46 -07:00
Tim Chevalier
1adc26d5e7
Annotate FIXMEs in syntax::ast and syntax::ast_util
...
The main non-comment change was to change simple_path to path,
as per a FIXME in ast.
2012-04-13 01:46:56 -07:00