Brian Anderson
a5ede9d345
rustdoc: Resolve imports and reexports
2012-02-17 16:00:39 -08:00
Marijn Haverbeke
f7f73c79ec
Move debuginfo into trans
2012-02-17 23:03:12 +01:00
Marijn Haverbeke
ff42964546
Clean up some of trans using block combinators
...
`with_scope` and `with_cond` can be used to wrap a piece of code in a
scope block, or conditionalize it on a value, without doing all the
context-creation and jumping by hand.
Also renames @block_ctxt to block to reduce noise.
2012-02-17 23:03:12 +01:00
Marijn Haverbeke
1c1261bcb8
Simplify get_tydesc's API
2012-02-17 22:47:03 +01:00
Marijn Haverbeke
9f4206cdc4
Clean up block_ctxt representation
2012-02-17 22:47:03 +01:00
Brian Anderson
54d7bffbb8
rt: Make upcall_vec_push an intrinsic
2012-02-17 12:08:03 -08:00
Marijn Haverbeke
e62ddf4898
More rigorous reuse of cleanup sequences
...
In both landing pads and break/cont/ret unwinding.
Closes #300
2012-02-16 16:37:33 +01:00
Marijn Haverbeke
ea6bb5aafa
Remove to_zero/to_revoke kludge
...
It is much simpler to just move by_move args into a temporary
alloca.
2012-02-16 13:55:17 +01:00
Niko Matsakis
bfff2a8d55
make mut a keyword synonymous with mutable
...
first step towards issue #1273
2012-02-15 13:26:11 -08:00
Niko Matsakis
dddd9908d5
move shape into trans
2012-02-15 13:26:10 -08:00
Marijn Haverbeke
67cc89f38d
Rewrite exhaustiveness checker
...
Issue #352
Closes #1720
The old checker would happily accept things like 'alt x { @some(a) { a } }'.
It now properly descends into patterns, checks exhaustiveness of booleans,
and complains when number/string patterns aren't exhaustive.
2012-02-15 15:47:42 +01:00
Marijn Haverbeke
4b63826050
Replace some explicit fails with 'alt check' invocations
2012-02-15 15:47:42 +01:00
Marijn Haverbeke
16e5760564
Fix bug in safe-reference checker
...
At some point, a refactor broke the code that handled local declarations
to no longer descend into the initializer expressions.
Closes #1846
2012-02-15 11:53:32 +01:00
Marijn Haverbeke
9ff5ba085d
Fix bad line printing for parse errors
...
The code that extracted lines from partially-parsed files
was broken.
Closes #1848
2012-02-15 11:53:32 +01:00
Marijn Haverbeke
6627890f6b
Support 'alt check' syntax
...
It is only a way to flag an alt as intentionally non-exhaustive right now.
Issue #1679
2012-02-15 11:53:32 +01:00
Kevin Atkinson
d6d7134c37
When parsing a source string, fail when the entire string is not parsed.
...
(For now only fail when parse_from_source_str is used to avoid
possible compatibility problems; parse_expr_from_source_str still
does not check.)
2012-02-14 19:37:33 -08:00
Kevin Atkinson
a803a14b56
Bug fix to accept $ in 0th pos, (ie #ast{$(x) + ...}).
...
Note: part from Niko Matsakis commit: rewrite assert to accept a $ in
0th pos.
2012-02-14 19:37:33 -08:00
Kevin Atkinson
3eef8d1419
Correctly handle the character position at the EOF.
...
Fixes issue #1785 .
2012-02-14 19:37:33 -08:00
Kevin Atkinson
379194753c
Use file_substr rather than <anon> when re-parsing quasi-quotes
...
for better error messages.
2012-02-14 19:37:33 -08:00
Kevin Atkinson
0e44133e7c
Do a better job of reporting source location for files (i.e. filemap)
...
that are really a substr of another file.
2012-02-14 19:37:33 -08:00
Kevin Atkinson
74b4345a38
Change file_substr to allow for external strings.
2012-02-14 19:37:33 -08:00
Brian Anderson
214cdd0dee
rustc: Translate crust functions
2012-02-14 11:24:09 -08:00
Brian Anderson
78034aa22a
rustc: Add trans_crust_fn. Don't do anything special yet
2012-02-14 11:24:09 -08:00
Brian Anderson
d7c8cacfde
rustc: Extract native function generation into trans::native
2012-02-14 11:24:09 -08:00
Brian Anderson
c4c89dd684
rustc: Translate the value of crust functions
2012-02-14 11:24:09 -08:00
Brian Anderson
0a503228f6
rustc: Typecheck crust functions as *u8
2012-02-14 11:24:09 -08:00
Brian Anderson
305cbf9b8e
rustc: Parse crust functions
2012-02-14 11:24:09 -08:00
Brian Anderson
6943b38e4f
rustc: Add crust functions to the AST
2012-02-14 11:24:09 -08:00
Brian Anderson
acabd821d2
Merge pull request #1831 from killerswan/str_fixes
...
(core::str) changes to find / find_bytes
2012-02-14 11:22:31 -08:00
Marijn Haverbeke
857ad58dce
Fix double-cleanup bug in patch 57c7645cb83e609ff
...
Things would run fine (probably by sheer luck) but valgrind didn't
approve.
2012-02-14 15:59:41 +01:00
Marijn Haverbeke
57c7645cb8
Allow static method calls to be bound
...
This allows you to take the value of, for example, `[1].len`, or bind
it with `bind x.map(_)` syntax.
I'm holding off on implementing this for dynamic methods (those on
bounded type parameters or iface types) until it's clearer what we
will do with monomorphization.
Issue #435
2012-02-14 13:43:36 +01:00
Marijn Haverbeke
f2e880b750
Add [X].len() to core, use it in trans modules
2012-02-14 13:43:36 +01:00
Marijn Haverbeke
72591496b0
Remove some needlessly repetetive casts in metadata code
2012-02-13 21:08:05 +01:00
Marijn Haverbeke
6c9d95a9a0
Track purity/unsafety of iface and impl methods
...
Closes #1807
2012-02-13 21:08:05 +01:00
Marijn Haverbeke
94d4dcdbf0
Fix bug in handling of block functions in last-use analysis
...
It would fail to start out with a fresh scope when going over
a loop or block function for the second time, and thus not
recognize last uses of locals defined inside the block.
Closes #1818
2012-02-13 17:55:40 +01:00
Niko Matsakis
520c3f5f79
correct error message and add to test
2012-02-13 07:33:16 -08:00
Niko Matsakis
3a2f1e1876
add serialization library; convert ebml lib to use u64 internally
2012-02-13 06:50:58 -08:00
Niko Matsakis
4eb52f69a9
do not fail if iface/impl method have different number of parameters
2012-02-13 06:50:58 -08:00
Niko Matsakis
a7641e99e8
remove leading ::, new tests
2012-02-13 06:50:58 -08:00
Marijn Haverbeke
bcbe36b33b
Make sure simplify_type simplifies all pointer types
...
This is needed to prevent infinite recursion when computing
the shape of an enum type that contains pointers to itself.
Closes #1821
2012-02-13 14:13:35 +01:00
Kevin Cantu
c81867474a
(core::str) add find_bytes and export it...
2012-02-13 01:56:58 -08:00
Kevin Cantu
2ba44e24d5
(core::str) rename byte_len_range -> substr_len_bytes and
...
rename char_len_range -> substr_len_chars
2012-02-12 15:30:20 -08:00
Kevin Cantu
2b4f5136a5
(core::str) rename byte_len -> len_bytes and rename char_len -> len
2012-02-12 15:30:20 -08:00
Kevin Cantu
944f5a6598
(core::str) move push_byte, push_bytes, pop_byte, and shift_byte into str::unsafe
2012-02-12 15:30:20 -08:00
Brian Anderson
d2debed605
core: Change the argument order for vec::contains, vec::count
2012-02-11 18:00:52 -08:00
Brian Anderson
1040b47078
core: Rename vec::member to vec::contains to match str mod
2012-02-11 18:00:52 -08:00
Kevin Cantu
27161f4415
using str::index...
2012-02-11 16:39:39 -08:00
Kevin Cantu
a131b430a0
core::str rename [r]index -> [r]index_bytes
2012-02-11 16:39:39 -08:00
Niko Matsakis
3f15a28b16
correct fully qualified type names to include the crate; add tests (take 2)
...
This reverts commit fc023d91c77f468211ba9f7681b4d2a6469aac74.
2012-02-11 14:09:52 -08:00
Niko Matsakis
b106ef8116
make bind syntax unnecessary: just use _ for one of the arguments
2012-02-11 10:14:41 -08:00