Commit Graph

15265 Commits

Author SHA1 Message Date
bors 0c2b4edff5 auto merge of #4847 : nikomatsakis/rust/region-syntax, r=graydon
cc #4846

r? @pcwalton
2013-02-08 14:25:52 -08:00
bors f529af0d50 auto merge of #4844 : jld/rust/const-index-fix, r=graydon
Fixes #3169 and uses that to fix const array indexing, which I broke (in a way that doesn't break tests but will greatly confuse users) while trying to fix const enum vectors.
2013-02-08 10:53:16 -08:00
bors ee93fb2ad5 auto merge of #4845 : osaut/rust/master, r=graydon
There was a simple typo on recursive in doc/tutorial-macros.md: s/recusive/recursive.
2013-02-08 08:47:45 -08:00
Niko Matsakis 14930fbffe Add and lex LIFETIME tokens
cc #4846
2013-02-08 06:02:35 -08:00
Olivier Saut 4dec0d5192 Typo s/recusive/recursive/ 2013-02-08 11:45:47 +01:00
Jed Davis 9318babf6c Fix const array index limit calculation.
The number of operands of the LLVM node initializing the array
underlying a const vector isn't always the array length -- if the
array is of a sufficiently primitive type and all the elements' values
are known (or something like that), LLVM uses a specialized Constant
subclass that stores the data packed, and thus has no operands.  Oops.

But, because llsize_of now gives us a ConstantInt, we can just fix
mozilla/rust#3169 and this all goes away.
2013-02-08 01:52:55 -08:00
Jed Davis dd7a81d025 Let llsize_of be a ConstantInt 2013-02-08 01:52:47 -08:00
bors dd41f044da auto merge of #4843 : ILyoan/rust/i1531, r=catamorphism
Fix for #1531
2013-02-08 00:10:49 -08:00
bors e5637226d8 auto merge of #4839 : catamorphism/rust/rm-structural-records, r=catamorphism 2013-02-07 23:16:42 -08:00
Tim Chevalier 3b8f1fa2b6 core: Remove structural records from the rest of core, except pipes
That will, sadly, require one more snapshot.
2013-02-07 22:48:57 -08:00
bors 9b4fa844d8 auto merge of #4835 : thestinger/rust/iterator, r=graydon
This adds a `BaseIter` impl to `PriorityQueue`, `TreeMap`, `LinearMap` and `SmallIntMap`, and introduces a `ReverseIter` trait + implementations for `TreeMap`, `TreeSet` and `SmallIntMap`.
2013-02-07 21:37:59 -08:00
ILyoan e7c6735e0d Fixed #1531 2013-02-08 14:11:00 +09:00
Daniel Micay 8c32cd2dc8 fix map tests 2013-02-07 22:58:16 -05:00
bors e8fc4b347d auto merge of #4834 : veddan/rust/zflags, r=graydon
Converted --static, --gc, --jit, -g and --xg to -Z flags.
2013-02-07 19:50:03 -08:00
Daniel Micay 9599cc86f0 implement BaseIter for LinearMap 2013-02-07 22:28:58 -05:00
bors bc1fb62c34 auto merge of #4745 : jld/rust/constenum-bis, r=graydon
There were a bunch of problems with consts where an enum was contained within some other type (vector, tuple, struct, etc.); some of these would cause LLVM assertion failures, and some would silently read from the wrong address.  These changes should fix all of that.

It would be good if someone with access to a win32 host could do the equivalent of `make check-stageN-rpass TESTNAME=enum` on that platform before merging this.
2013-02-07 19:04:44 -08:00
Daniel Micay fe841f3e56 implement ReverseIter for SmallIntMap 2013-02-07 22:04:38 -05:00
Daniel Micay a2f922f282 implement ReverseIter for TreeMap and TreeSet 2013-02-07 22:04:38 -05:00
Daniel Micay 3e0a28c7da add a ReverseIter trait 2013-02-07 22:04:38 -05:00
Daniel Micay 66d5030763 implement BaseIter for SmallIntMap 2013-02-07 22:04:38 -05:00
Daniel Micay e018244777 make Option's map and map_default use a lifetime 2013-02-07 22:04:38 -05:00
Daniel Micay f6e0df6563 implement BaseIter for TreeMap 2013-02-07 22:04:37 -05:00
Daniel Micay 83270d2d79 rm each method from the Map trait
the map types should implement BaseIter instead
2013-02-07 22:04:35 -05:00
Jed Davis e89d9853a6 Fix vector indexing in consts so it works with the enum vector const fix. 2013-02-07 18:31:12 -08:00
Jed Davis de8dc02634 Make tuple-like structs containing enums work as constants. 2013-02-07 18:31:12 -08:00
Jed Davis 30aae3d910 Fix const enum type issues for structs. 2013-02-07 18:31:12 -08:00
Jed Davis bbb1202528 Add a test for vstore, which already works 2013-02-07 18:31:08 -08:00
Jed Davis 29b99669dc Fix pointer consts to work with enums 2013-02-07 18:28:31 -08:00
Jed Davis 9ad616a102 Make vectors of enums work as constants 2013-02-07 18:28:11 -08:00
Tim Chevalier 9123c58526 core: Remove transitional code 2013-02-07 18:26:43 -08:00
Jed Davis 6cdc283415 Also need to pad out "C-like" enum consts (paths as well as calls). 2013-02-07 17:57:02 -08:00
Jed Davis 877fc8d891 Pad out enum consts to the expected size; makes enums in tuples work.
This is wasted space if the const is just an enum, but optimizing that
case without breaking everything else is an issue that can be addressed
separately.
2013-02-07 17:57:02 -08:00
Jed Davis 52cf61fd3b Fix const enums better: let them have the same alignment as an "opaque enum". 2013-02-07 17:57:02 -08:00
Daniel Micay d903231f1e add a BaseIter implementation for PriorityQueue 2013-02-07 20:18:15 -05:00
bors 6647a3402b auto merge of #4833 : pcwalton/rust/demuting, r=pcwalton 2013-02-07 16:23:59 -08:00
Patrick Walton 472797b04a librustc: Lots of de-muting. rs=demuting 2013-02-07 16:17:39 -08:00
Viktor Dahl fae8fc94dc Added a few missing 'pub's 2013-02-08 00:57:31 +01:00
bors 2bc9655bc1 auto merge of #4803 : alexcrichton/rust/fix-unused-imports, r=graydon
The first commit message has most of the comments, but this pull request basically fixes a lot of issues surrounding the `unused_imports` warning/deny attribute.

Before this patch there were these problems:

1. Unused imports from `prelude.rs` were warned about with dummy spans, leading to a large number of confusing warnings.
2. Unused imports from `intrinsic.rs` were warned about with the file `<intrinsic>` which couldn't be forced to go away
3. Methods used from imported traites (like `io::WriterUtil`) resulted in an unused warning of the import even though it was used.
4. If one `use` statement imported N modules, M of which weren't used, M warning statements were issued.
5. If a glob import statement was used, each public export of the target module which wasn't used had a warning issued.

This patch deals with all these cases by doing:

1. Ignore unused imports from `prelude.rs` (indicated by a dummy span of 0)
2. Ignore unused imports from `intrinsic.rs` (test on the imported module name, is there a better way?)
3. Track when imported modules are used as candidates for methods, and just assume they're used. This may not end up being the actual case, but in theory not warning about an unused thing is worse than warning about a used thing.
4. Only issue one warning statement
5. Only issue one warning statement.

This is the first time I've edited the compiler itself, and I tried to keep up with the style around, but I may have missed something here or there...
2013-02-07 15:20:16 -08:00
Viktor Dahl b8943474dc Moved experimental compiler flags to -Z (#4740) 2013-02-08 00:18:23 +01:00
bors 4272765830 auto merge of #4791 : jbclements/rust/demodeing-and-deGCing, r=jbclements,brson
r?

It looks to me like the string_reader and tt_reader structs are
GC pointers only because they predate the modern borrow system.
This commit leaves the type names string_reader and tt_reader alone
(they still refer to GC-ed pointers), but internally the functions
now use borrowed pointers to refer to these structures. My guess
would be that it's possible to move this change outward and not
use the GCed pointers at all, but that change looks like it could be
a larger one. Actually, I'm delighted at how quick this change was.
2013-02-07 13:58:32 -08:00
Brian Anderson 6e9298ab88 Merge pull request #4619 from brson/exchange
Some work on freestanding Rust: foreign calls, exchange allocator
2013-02-07 13:46:10 -08:00
bors a2817953d0 auto merge of #4832 : sanxiyn/rust/pretty-exact, r=graydon 2013-02-07 12:17:32 -08:00
bors 8dd932b3d5 auto merge of #4814 : brson/rust/check, r=nikomatsakis
r? @nikomatsakis The third commit here is the one that makes the test suite remember which steps have completed successfully.
2013-02-07 10:46:34 -08:00
Seo Sanghyeon 683e7a45a6 Change pretty-exact to pp-exact 2013-02-08 02:56:49 +09:00
bors 37a610a7d9 auto merge of #4831 : bjz/rust/incoming, r=pcwalton
This is useful for comparing more complex types that include floats.
2013-02-07 08:32:09 -08:00
Brendan Zabarauskas 7651100ec1 Fix broken tests 2013-02-08 02:41:23 +11:00
bors 3764cfbf57 auto merge of #4810 : nikomatsakis/rust/owned-fn-noncopyable, r=nikomatsakis
Part of #3678.  Fixes #2828, #3904.

r? @brson
2013-02-07 06:05:10 -08:00
Niko Matsakis a32498d846 Make ~fn non-copyable, make &fn copyable, split barefn/closure types,
correct handling of moves for struct-record update.

Part of #3678.  Fixes #2828, #3904, #4719.
2013-02-07 05:53:30 -08:00
bors 82d7396333 auto merge of #4823 : pcwalton/rust/enum-variant-discriminants, r=graydon
r? @graydon
2013-02-07 04:02:51 -08:00
Brendan Zabarauskas 17a14fe0e9 Merge branch 'incoming' of https://github.com/mozilla/rust into incoming 2013-02-07 22:55:23 +11:00