Commit Graph

33792 Commits

Author SHA1 Message Date
Niko Matsakis
fb9d0ccc2f Move associated types into the Assoc space and add in the builtin bounds
from the definition (including Sized).
2014-11-03 17:41:01 -05:00
Niko Matsakis
d2f8074eac Add a 4th space for associated types defined in a trait (currently unused) 2014-11-03 17:41:01 -05:00
Niko Matsakis
94d142b596 Add in the bounds into the typeparameterdefs for assoc types 2014-11-03 17:41:00 -05:00
Niko Matsakis
319d778ed3 Restructure AST so that the associated type definition carries
bounds like any other "type parameter".
2014-11-03 17:41:00 -05:00
Alex Crichton
768caf1083 rustc: Set the exceeding_bitshifts lint to Allow
There's currently a bug in it which fires erroneously on cross compiles,
preventing new nightlies from being generated. This can be reset back to Deny
once it's been fixed.

cc #18587
2014-11-03 14:34:14 -08:00
bors
b11b706545 auto merge of #18575 : alexcrichton/rust/rollup, r=alexcrichton 2014-11-03 21:07:45 +00:00
Ariel Ben-Yehuda
a87078a27d Clean-up transmutes in librustc
None of them would break by implementation-defined struct layout, but
one would break with strict lifetime aliasing, and the rest are just
ugly code.
2014-11-03 22:53:59 +02:00
Nick Cameron
f9e52fb34c tests 2014-11-04 09:37:00 +13:00
Nick Cameron
961ee0a1e0 Allow impls for traits as a concrete type 2014-11-04 09:37:00 +13:00
Ariel Ben-Yehuda
fbb90c3458 Clean-up transmutes in libsyntax 2014-11-03 22:07:43 +02:00
Falco Hirschenberger
32b903d877 Also fix undefined behaviour when shift equals the number of bits
LLVM states:  "If op2 is (statically or dynamically) negative or equal
to or larger than the number of bits in op1, the result is undefined."
2014-11-03 20:08:11 +01:00
Alex Crichton
dce0be03d9 Test fixes and rebase conflicts 2014-11-03 11:02:36 -08:00
bors
01b81c0ebb auto merge of #18460 : gamazeps/rust/issue18451, r=steveklabnik
Closes #18451
2014-11-03 18:57:29 +00:00
Alex Crichton
02300dc90d rollup merge of #18545 : luqmana/fix-18539 2014-11-03 08:31:47 -08:00
Alex Crichton
2f08d263ba rollup merge of #18542 : jakub-/struct-inherit-feature-gate 2014-11-03 08:31:47 -08:00
Alex Crichton
386cc76655 rollup merge of #18537 : japaric/no-secret 2014-11-03 08:31:46 -08:00
Alex Crichton
a8fdcc305e rollup merge of #18531 : robinst/getopts-doc 2014-11-03 08:31:46 -08:00
Alex Crichton
bb7805f58f rollup merge of #18527 : bkoropoff/issue-18490 2014-11-03 08:31:46 -08:00
Alex Crichton
6f00bee168 rollup merge of #18526 : mprobinson/vector-error-msg 2014-11-03 08:31:46 -08:00
Alex Crichton
202ede19d9 rollup merge of #18523 : bkoropoff/issue-18501 2014-11-03 08:31:46 -08:00
Alex Crichton
b3f8b8f238 rollup merge of #18522 : jbcrail/rename-missing-doc-attribute 2014-11-03 08:31:46 -08:00
Alex Crichton
e5a8840033 rollup merge of #18519 : Gankro/collect-smash 2014-11-03 08:31:45 -08:00
Alex Crichton
dcd8c23768 rollup merge of #18518 : bkoropoff/issue-18514 2014-11-03 08:31:45 -08:00
Alex Crichton
67840513f4 rollup merge of #18509 : cakebaker/missing_ofs 2014-11-03 08:31:45 -08:00
Alex Crichton
048902db52 rollup merge of #18508 : cakebaker/fix_variable_name 2014-11-03 08:31:45 -08:00
Alex Crichton
02c234cc52 rollup merge of #18505 : bkoropoff/issue-18487 2014-11-03 08:31:45 -08:00
Alex Crichton
82efef76c3 rollup merge of #18500 : adrientetar/fonts 2014-11-03 08:31:45 -08:00
Alex Crichton
ceb5404ee8 rollup merge of #18495 : rolfvandekrol/intro-fix 2014-11-03 08:31:44 -08:00
Alex Crichton
fab6c74cf3 rollup merge of #18494 : nikomatsakis/issue-18453 2014-11-03 08:31:44 -08:00
Alex Crichton
0f4d7f248d rollup merge of #18493 : jakub-/issue-18464 2014-11-03 08:31:44 -08:00
Alex Crichton
68e7dd0ffe rollup merge of #18476 : vadimcn/17982 2014-11-03 08:31:44 -08:00
Alex Crichton
6478fcfafe rollup merge of #18470 : alexcrichton/dash-l 2014-11-03 08:31:44 -08:00
Alex Crichton
566ee9ecb3 rollup merge of #18460 : gamazeps/issue18451 2014-11-03 08:31:44 -08:00
Daniel Hofstetter
e9618ce701 Small doc fixes 2014-11-03 15:34:56 +01:00
bors
2790505c19 auto merge of #18468 : jakub-/rust/iter-repeat, r=alexcrichton
Implements a part of RFC 235.

[breaking-change]
2014-11-03 14:17:26 +00:00
Brendan Zabarauskas
8bd37e6724 Deprecate {f32, f64}::from_str_hex
This is now covered by `FromStrRadix::from_str_radix`
2014-11-04 00:20:37 +11:00
Brendan Zabarauskas
01ded5898b Simplify float string conversion function further
We now have a really simple function signature:

    pub fn from_str_radix_float<T: Float>(src: &str, radix: uint) -> Option<T>

By removing some of the arguments, we remove the possibility of some invalid states.
2014-11-04 00:20:37 +11:00
Brendan Zabarauskas
84f4b58eeb Clean up from_str_float and use iterators 2014-11-04 00:20:37 +11:00
Brendan Zabarauskas
251fdc877c Remove unnecessary features from strconv 2014-11-04 00:20:37 +11:00
Brendan Zabarauskas
138b76b83a Separate string->integer implementation in strconv 2014-11-04 00:20:37 +11:00
bors
b9b396cd75 auto merge of #18463 : japaric/rust/bytes2, r=alexcrichton
- The `BytesContainer::container_into_owned_bytes` method has been removed

- Methods that used to take `BytesContainer` implementors by value, now take them by reference. In particular, this breaks some uses of Path:

``` rust
Path::new("foo")  // Still works
path.join(another_path) -> path.join(&another_path)
```

[breaking-change]

---

Re: `container_into_owned_bytes`, I've removed it because

- Nothing in the whole repository uses it
- Takes `self` by value, which is incompatible with unsized types (`str`)

The alternative to removing this method is to split `BytesContainer` into `BytesContainer for Sized?` and `SizedBytesContainer: BytesContainer + Sized`, where the second trait only contains the `container_into_owned_bytes` method. I tried this alternative [in another branch](https://github.com/japaric/rust/commits/bytes) and it works, but it seemed better not to create a new trait for an unused method.

Re: Breakage of `Path` methods

We could use the idea that @alexcrichton proposed in #18457 (add blanket `impl BytesContainer for &T where T: BytesContainer` + keep taking `T: BytesContainer` by value in `Path` methods) to avoid breaking any code.

r? @aturon 
cc #16918
2014-11-03 12:12:24 +00:00
gamazeps
9bc4da3493 Doc: corrects obsolete pointer syntax
Goes from ~ to box
Closes #18551
2014-11-03 12:18:56 +01:00
bors
851799d09e auto merge of #18206 : hirschenberger/rust/issue-17713, r=thestinger
Add lint for checking exceeding bitshifts #17713

It also const-evaluates the shift width (RHS) to check more complex shifts like `1u8 << (4+5)`.
The lint-level is set to `Warn` but perhaps it must be `Deny` as in llvm exceeding bitshifts are undefined as @ben0x539 stated in #17713
2014-11-03 07:37:23 +00:00
Nick Cameron
2b6c2b6e34 Dump char and byte positions in save_analysis 2014-11-03 18:30:29 +13:00
Nick Cameron
3ceb0112ef Ignore whitespace tokens when re-computing spans in save_analysis 2014-11-03 17:52:00 +13:00
bors
ff50f24feb auto merge of #17753 : aturon/rust/error-interop, r=alexcrichton
This PR:

* Adds the error interoperation traits (`Error` and `FromError`) to a new module, `std::error`, as per [RFC 70](https://github.com/rust-lang/rfcs/blob/master/active/0070-error-chaining.md). Note that this module must live in `std` in order to refer to `String`.

    Note that, until multidispatch lands, the `FromError` trait cannot be
usefully implemented outside of the blanket impl given here.

* Incorporates `std::error::FromError` into the `try!` macro.

* Implements `Error` for most existing error enumerations.

Closes #17747
2014-11-03 03:57:18 +00:00
Brian Koropoff
7a8e73e4f5 Add regression test for #18532 2014-11-02 19:36:15 -08:00
Brian Koropoff
1571abae53 Fix ICE when checking call overload
If the overloaded method does not have a tuple or unit type as its
first non-self parameter, produce a list of error types with the
correct length to prevent a later index bound panic.  This typically
occurs due to propagation of an earlier type error or unconstrained
type variable.  Closes #18532
2014-11-02 19:31:41 -08:00
bors
dcc5c3b31b auto merge of #18554 : sfackler/rust/jemalloc-fix, r=thestinger 2014-11-03 01:27:18 +00:00
Alexis Beingessner
112c8a966f refactor libcollections as part of collection reform
* Moves multi-collection files into their own directory, and splits them into seperate files
* Changes exports so that each collection has its own module
* Adds underscores to public modules and filenames to match standard naming conventions

(that is, treemap::{TreeMap, TreeSet} => tree_map::TreeMap, tree_set::TreeSet)

* Renames PriorityQueue to BinaryHeap
* Renames SmallIntMap to VecMap
* Miscellanious fallout fixes

[breaking-change]
2014-11-02 18:58:11 -05:00