Commit graph

5118 commits

Author SHA1 Message Date
Ben Blum
4bcda7148d Fix warnings in src/test/bench tests. Nobody will ever care. 2013-07-20 05:12:04 -04:00
Michael Woerister
a1303cc815 debuginfo: Removed some test relying on data structure sizes hard to predict for all possible platforms and configurations. 2013-07-20 10:47:24 +02:00
Alex Crichton
0bba8f4b74 Add tests for issues which can be closed
Closes #5275, $4547
2013-07-19 19:01:46 -07:00
bors
06fec5243b auto merge of #7863 : catamorphism/rust/issue-5883, r=catamorphism 2013-07-19 00:25:36 -07:00
Michael Woerister
72cf2ee136 debuginfo: Implemented trait_method branch in create_function_metadata(). 2013-07-19 07:58:28 +02:00
Michael Woerister
e9baeab695 debuginfo: Adapted DI generation to new memory layout of unique vecs. 2013-07-19 07:58:28 +02:00
Michael Woerister
b2aeb4b04b debuginfo: Cleaned up style issues for pull request. 2013-07-19 07:58:28 +02:00
Michael Woerister
eed2d0e1f2 debuginfo: Added support for Option<T>-like enums. 2013-07-19 07:57:39 +02:00
Michael Woerister
7af2e6ee45 debuginfo: Fixed unique pointers to data containing managed pointers. 2013-07-19 07:57:39 +02:00
Michael Woerister
e0108a47ab debuginfo: DI generation for enums uses adt::represent_type() now. 2013-07-19 07:57:38 +02:00
Michael Woerister
70e5c08e39 debuginfo: Extended test suite with various tests for enums. 2013-07-19 07:57:38 +02:00
Michael Woerister
77a00cca03 debuginfo: Fixes related to changed memory layout of unique allocations 2013-07-19 07:55:25 +02:00
Michael Woerister
3b06df4e35 debuginfo: Added support for struct-style enums. 2013-07-19 07:55:25 +02:00
Michael Woerister
7cf0aac6cf debuginfo: Better support for univariant tuple-style enums. 2013-07-19 07:55:24 +02:00
Michael Woerister
f389bd8f2a debuginfo: Support for tuple-style enums (WIP) 2013-07-19 07:55:24 +02:00
Michael Woerister
739f3eece9 debuginfo: Added support for c-style enums. 2013-07-19 07:55:24 +02:00
Michael Woerister
99ebb816cf debuginfo: Added test cases for packed structs (/w drop) 2013-07-19 07:55:24 +02:00
Michael Woerister
f424e931da debuginfo: Refactoring of composite type info generation done.
There is no more StructContext now. Better support for boxed vectors in there too.
2013-07-19 07:55:24 +02:00
Michael Woerister
36ea756831 debuginfo: Refactored vec slice code to use the new infrastructure. Added test cases for vec slices. 2013-07-19 07:53:58 +02:00
Michael Woerister
7a31a3e071 debuginfo: Removed some misleading comments from test cases. 2013-07-19 07:53:57 +02:00
Michael Woerister
1b20831c1e debuginfo: Renamed *reference-to-* test cases to *borrowed-* 2013-07-19 07:53:57 +02:00
Michael Woerister
976d7a53cb debuginfo: Began refactoring of composite type handling. 2013-07-19 07:53:57 +02:00
Patrick Walton
9089cf2ec9 librustc: Forbid & pointers (other than &'static) inside @ boxes.
This makes custom borrowing implementations for custom smart pointers
sound.
2013-07-18 17:12:46 -07:00
Michael Sullivan
002bfd7966 Export information about used default methods instead of regenerating it. Closes #7862. 2013-07-18 13:56:15 -07:00
bors
f83c118f42 auto merge of #7833 : blake2-ppc/rust/hashmap-consume, r=alexcrichton
Updated all users of HashMap, HashSet ::consume() to use
.consume_iter().

Since .consume_iter() takes the map or set by value, it needs awkward
extra code to in librusti's use of @mut HashMap, where the map value can
not be directly moved out.

Addresses issue #7719
2013-07-18 10:19:44 -07:00
bors
559d2ef925 auto merge of #7842 : thestinger/rust/closure, r=huonw 2013-07-18 08:37:39 -07:00
blake2-ppc
7ef9e722b8 hashmap: Remove .consume() has rename .consume_iter() to .consume()
Updated all users of HashMap, HashSet old .consume() to use .consume()
with a for loop.

Since .consume() takes the map or set by value, it needs awkward
extra code to in librusti's use of @mut HashMap, where the map value can
not be directly moved out.
2013-07-18 15:03:59 +02:00
bors
cee5c4ad11 auto merge of #7849 : nikomatsakis/rust/issue-7444-capture-moved-value, r=bblum
This code looks like it was just wrong. r? @bblum
2013-07-18 01:37:44 -07:00
Tim Chevalier
0ce9135d71 testsuite: Test for #6153, closes #6153 2013-07-17 16:58:43 -07:00
Tim Chevalier
2fbd9f0cb2 testsuite: Add compile-fail test for #5883 2013-07-17 15:32:02 -07:00
Patrick Walton
3f8d548914 librustc: Remove some extra "copy" keywords that came in before this change merged. 2013-07-17 14:58:12 -07:00
Patrick Walton
dc4bf173f8 test: Fix tests. 2013-07-17 14:57:55 -07:00
Patrick Walton
2dbb3c3887 test: Fix tests. 2013-07-17 14:57:54 -07:00
Patrick Walton
e20549ff19 librustc: Remove all uses of the Copy bound. 2013-07-17 14:57:53 -07:00
Patrick Walton
99b33f7219 librustc: Remove all uses of "copy". 2013-07-17 14:57:51 -07:00
Patrick Walton
b4e674f6e6 librustc: Add a lint mode for unnecessary copy and remove a bunch of them. 2013-07-17 14:56:42 -07:00
bors
060de1016b auto merge of #7844 : huonw/rust/no-implicit-prelude, r=alexcrichton
It disables the insertion of `use std::prelude::*;` into the top of
all the modules below the item on which it is placed (including that
item itself).

(Similar to GHC's `-XNoImplicitPrelude`.)
2013-07-17 11:28:46 -07:00
Daniel Micay
0239a06a64 rm unused visit_str method from TyVisitor 2013-07-17 13:30:32 -04:00
Niko Matsakis
782853c658 Issue #7444 - Update neg test and pos test for move by capture 2013-07-17 09:02:52 -04:00
Niko Matsakis
81c576cd5b Issue #7444 - Borrowck permits moved values to be captured 2013-07-17 07:19:43 -04:00
bors
a93244dbf6 auto merge of #7839 : graydon/rust/new-codegen-tests, r=pcwalton
Add some codegen tests. Nothing too surprising.
2013-07-17 00:52:48 -07:00
bors
af54f633fd auto merge of #7828 : alexcrichton/rust/lang-opt, r=graydon
Whenever a lang_item is required, some relevant message is displayed, often with
a span of what triggered the usage of the lang item.

Now "hello word" is as small as:

```rust
#[no_std];

extern {
    fn puts(s: *u8);
}

extern "rust-intrinsic" {
    fn transmute<T, U>(t: T) -> U;
}

#[start]
fn main(_: int, _: **u8, _: *u8) -> int {
    unsafe {
        let (ptr, _): (*u8, uint) = transmute("Hello!");
        puts(ptr);
    }
    return 0;
}
```
2013-07-16 23:10:44 -07:00
Huon Wilson
040e470f47 rustc: implement a #[no_implicit_prelude] attribute.
It disables the insertion of `use std::prelude::*;` into the top of
all the modules below the item on which it is placed (including that
item itself).
2013-07-17 15:01:02 +10:00
Alex Crichton
88a1b71305 Make all lang_items optional
Whenever a lang_item is required, some relevant message is displayed, often with
a span of what triggered the usage of the lang item
2013-07-16 21:37:52 -07:00
bors
4bd716ac8e auto merge of #7831 : ozten/rust/issues-7764-swap_unwarp-take-unwrap, r=pcwalton
Fixes Issue #7764

Running `make check` I do get a failure:

    test rt::io::extensions::test::push_bytes ... ok
    rustest rt::comm::test::oneshot_single_thread_send_port_close ... t: task failed at 'Unhandled condition:
     read_error: {kind: OtherIoError, desc: "Placeholder error. You shouldn\'t be seeing this", detail: None}',
     /Users/shout/Projects/rust/src/libstd/condition.rs:50
    /bin/sh: line 1: 35056 Abort trap: 6           x86_64-apple-darwin/stage2/test/stdtest-x86_64-apple-darwin --logfile
     tmp/check-stage2-T-x86_64-apple-darwin-H-x86_64-apple-darwin-std.log
    make: *** [tmp/check-stage2-T-x86_64-apple-darwin-H-x86_64-apple-darwin-std.ok] Error 134
2013-07-16 21:31:48 -07:00
Graydon Hoare
40f74341f3 test: new codegen tests, rename hello. 2013-07-16 17:44:57 -07:00
bors
8a1002fbd9 auto merge of #7827 : jdm/rust/enumlength, r=graydon
Allowing them in type signatures is a significant amount of extra work, unfortunately. This also doesn't apply to static values, which takes a different code path.
2013-07-16 16:19:37 -07:00
bors
53e934c2ab auto merge of #7684 : pnkfelix/rust/fsk-invert-range-rev-halfclosedness-issue5270-2ndpr, r=cmr
Changes int/uint range_rev to iterate over range `(hi,lo]` instead of `[hi,lo)`.

Fix #5270.

Also:
* Adds unit tests for int/uint range functions
* Updates the uses of `range_rev` to account for the new semantics.  (Note that pretty much all of the updates there were strict improvements to the code in question; yay!)
* Exposes new function, `range_step_inclusive`, which does the range `[hi,lo]`, (at least when `hi-lo` is a multiple of the `step` parameter).
* Special-cases when `|step| == 1` removing unnecessary bounds-check.  (I did not check whether LLVM was already performing this optimization; I figure it would be a net win to not leave that analysis to the compiler.  If reviewer objects, I can easily remove that from the refactored code.)

(This pull request is a rebased version of PR #7524, which went stale due to recent unrelated changes to num libraries.)
2013-07-16 14:37:34 -07:00
Austin King
712ac836c6 Rename Option swap_unwrap to take_unwrap. Fixes Issue#7764 2013-07-16 12:47:01 -07:00
bors
ad212ecee4 auto merge of #7822 : huonw/rust/cond-debug, r=graydon
As per @pcwalton's request, `debug!(..)` is only activated when the `debug` cfg is set; that is, for `RUST_LOG=some_module=4 ./some_program` to work, it needs to be compiled with `rustc --cfg debug some_program.rs`. (Although, there is the sneaky `__debug!(..)` macro that is always active, if you *really* need it.)

It functions by making `debug!` expand to `if false { __debug!(..) }` (expanding to an `if` like this is required to make sure `debug!` statements are typechecked and to avoid unused variable warnings), and adjusting trans to skip the pointless branches in `if true ...` and `if false ...`.

The conditional expansion change also required moving the inject-std-macros step into a new pass, and makes it actually insert them at the top of the crate; this means that the cfg stripping traverses over the macros and so filters out the unused ones.

This appears to takes an unoptimised build of `librustc` from 65s to 59s; and the full bootstrap from 18m41s to 18m26s on my computer (with general background use).

`./configure --enable-debug` will enable `debug!` statements in the bootstrap build.
2013-07-16 11:19:20 -07:00