bors
2d90b91b5d
auto merge of #19683 : nikomatsakis/rust/generalized-where-clauses, r=nrc
...
This patch does not itself enable generalized where clauses, but it lays the groundwork. Rather than storing a list of bounds per type parameter, the trait selection and other logic is now driven by a unified list of predicates. All predicate handling is now driven through a common interface. This also fixes a number of bugs where region predicates were being dropped on the floor. As a drive-by, this patch also fixes some bugs in the opt-out-copy feature flag.
That said, this patch does not change the parser or AST in any way, so we still *generate* the list of predicates by walking a list of bounds (and we still *store* the bounds on the `TypeParameterDef` and so on). Those will get patched in a follow-up.
The commits in this case are standalone; the first few are simple refactorings.
r? @nick29581
cc @aturon
2014-12-13 03:07:17 +00:00
Alex Crichton
9a47d65e3b
rustc: Don't panic on corrupt metadata
...
Fix a panic where the compiler was looking at stale or old metadata.
See #19798 , #19772 , #19757 , #19744 , #19718 , #19691 .
2014-12-12 18:02:01 -08:00
Niko Matsakis
124e1e18cc
Improve comments and address nits.
2014-12-12 20:25:21 -05:00
Niko Matsakis
5f43899db4
Implement the astencode rules for predicates. These don't actually get
...
used by trans, but it's easy to do.
2014-12-12 20:25:21 -05:00
Niko Matsakis
97cf91aa30
Fix the opt-out-copy behavior so that values with dtor etc are considered affine
2014-12-12 20:25:21 -05:00
Niko Matsakis
07eebf6910
Remove diagnostic errors that were yielding warnings.
2014-12-12 20:25:21 -05:00
Niko Matsakis
9f492fefef
Switch to using predicates to drive checking. Correct various tests --
...
in most cases, just the error message changed, but in some cases we
are reporting new errors that OUGHT to have been reported before but
we're overlooked (mostly involving the `'static` bound on `Send`).
2014-12-12 20:25:21 -05:00
Niko Matsakis
2be6c4f1ca
Write code for registering region obligations (but don't use it yet).
2014-12-12 20:24:34 -05:00
Niko Matsakis
9409bd9ff8
Introduce predicates but don't use them.
2014-12-12 20:24:34 -05:00
Niko Matsakis
70be49d2c7
Move the list of region obligations into the fulfillment context.
2014-12-12 20:24:34 -05:00
Niko Matsakis
9bdd7f0040
Thread a id to Obligation
2014-12-12 20:24:34 -05:00
Niko Matsakis
4efaddf7c9
Start restructuring to support generalized where clauses etc.
2014-12-12 20:24:34 -05:00
Tom Jakubowski
31f75ac5c5
metadata: Encode attributes for const items
...
Fix #19773
Together with #19774 (which this is rebased on):
Fix #18156 , fix #19722 , fix #19185
2014-12-12 16:57:59 -08:00
bors
8c66927242
auto merge of #19664 : tbu-/rust/pr_oibit2_fix, r=Gankro
...
These probably happened during the merge of the commit that made `Copy` opt-in.
Also, convert the last occurence of `/**` to `///` in `src/libstd/num/strconv.rs`
2014-12-13 00:27:15 +00:00
Akos Kiss
a28d16a751
libc::c_char is not necessarily i8
2014-12-12 22:41:14 +00:00
Chase Southwood
0a015f287b
Update vim syntax highlighting for ExactSizeIterator
2014-12-12 15:09:26 -06:00
bors
ffc111889e
auto merge of #19569 : murphm8/rust/ring_buf_insert, r=Gankro
...
This is a first pass at insert on RingBuf. I tried to keep it as simple as possible. I'm not sure of the performance implications of doing one copy vs. copying multiple times but moving a smaller amount of memory. I chose to stick with one copy, even if the amount of memory I have to move is larger.
I believe this is part of #18424
@Gankro mentioned this was missing.
2014-12-12 21:07:19 +00:00
Chase Southwood
cd3bdeb91a
Remove feature gate directives for if_let
, while_let
, and tuple_indexing
.
2014-12-12 13:23:54 -06:00
bors
9146a919b6
auto merge of #19391 : nick29581/rust/assoc-eq, r=nikomatsakis
...
r? @nikomatsakis
cc @aturon (I think you were interested in this for some library stuff)
closes #18432
2014-12-12 18:57:15 +00:00
Mike Pedersen
3cc730e1e1
Add Ord impl to raw pointers
2014-12-12 18:44:22 +01:00
Adolfo Ochagavía
8788cb05c2
Add test for issue #19734
2014-12-12 17:40:49 +01:00
Adolfo Ochagavía
b99fb55f0f
Fix #19734 (ICE)
2014-12-12 17:34:28 +01:00
bors
a5921241a3
auto merge of #18028 : gereeter/rust/slimmer-btree-node, r=Gankro
...
...ated buffer.
Before:
test btree::map::bench::find_rand_100 ... bench: 29 ns/iter (+/- 2)
test btree::map::bench::find_rand_10_000 ... bench: 83 ns/iter (+/- 6)
test btree::map::bench::find_seq_100 ... bench: 30 ns/iter (+/- 1)
test btree::map::bench::find_seq_10_000 ... bench: 50 ns/iter (+/- 3)
test btree::map::bench::insert_rand_100 ... bench: 186 ns/iter (+/- 30)
test btree::map::bench::insert_rand_10_000 ... bench: 377 ns/iter (+/- 8)
test btree::map::bench::insert_seq_100 ... bench: 299 ns/iter (+/- 10)
test btree::map::bench::insert_seq_10_000 ... bench: 368 ns/iter (+/- 12)
test btree::map::bench::iter_1000 ... bench: 20956 ns/iter (+/- 479)
test btree::map::bench::iter_100000 ... bench: 2060899 ns/iter (+/- 44325)
test btree::map::bench::iter_20 ... bench: 560 ns/iter (+/- 63)
After:
test btree::map::bench::find_rand_100 ... bench: 28 ns/iter (+/- 2)
test btree::map::bench::find_rand_10_000 ... bench: 74 ns/iter (+/- 3)
test btree::map::bench::find_seq_100 ... bench: 31 ns/iter (+/- 0)
test btree::map::bench::find_seq_10_000 ... bench: 46 ns/iter (+/- 0)
test btree::map::bench::insert_rand_100 ... bench: 141 ns/iter (+/- 1)
test btree::map::bench::insert_rand_10_000 ... bench: 273 ns/iter (+/- 12)
test btree::map::bench::insert_seq_100 ... bench: 255 ns/iter (+/- 17)
test btree::map::bench::insert_seq_10_000 ... bench: 340 ns/iter (+/- 3)
test btree::map::bench::iter_1000 ... bench: 21193 ns/iter (+/- 1958)
test btree::map::bench::iter_100000 ... bench: 2203599 ns/iter (+/- 100491)
test btree::map::bench::iter_20 ... bench: 614 ns/iter (+/- 110)
This code could probably be a fair bit cleaner, but it works.
Part of #18009 .
2014-12-12 15:22:06 +00:00
Simon Sapin
0c601153d4
gedit language spec: add new-style Unicode escapes
2014-12-12 14:03:30 +00:00
Tom Jakubowski
25223c8ef8
rustdoc: Properly inline const items
...
Build `clean::ConstantItem` values in the `inline` module and
pretty-print the AST for inlined const items.
Doc strings are still missing from inlined constants (see #19773 ).
Partially address #18156 , #19722 , #19185
Fix #15821
2014-12-12 05:37:08 -08:00
bors
2ea38750e9
auto merge of #19617 : nikomatsakis/rust/issue-19261-2, r=nrc
...
**First commit.** Patch up debruijn indices. Fixes #19537 .
**Second commit.** Stop reborrowing so much. Fixes #19147 . Fixes #19261 .
r? @nick29581
2014-12-12 13:21:58 +00:00
Jonathan S
130fb08210
Slimmify BTree by replacing its internal Node type, which previously…held three separately allocated Vec
s, with a manually allocated buffer. Additionally, restructure the node and stack interfaces to be safer and require fewer bounds checks.
...
Before:
test btree::map::bench::find_rand_100 ... bench: 35 ns/iter (+/- 2)
test btree::map::bench::find_rand_10_000 ... bench: 88 ns/iter (+/- 3)
test btree::map::bench::find_seq_100 ... bench: 36 ns/iter (+/- 1)
test btree::map::bench::find_seq_10_000 ... bench: 62 ns/iter (+/- 0)
test btree::map::bench::insert_rand_100 ... bench: 157 ns/iter (+/- 8)
test btree::map::bench::insert_rand_10_000 ... bench: 413 ns/iter (+/- 8)
test btree::map::bench::insert_seq_100 ... bench: 272 ns/iter (+/- 10)
test btree::map::bench::insert_seq_10_000 ... bench: 369 ns/iter (+/- 19)
test btree::map::bench::iter_1000 ... bench: 19049 ns/iter (+/- 740)
test btree::map::bench::iter_100000 ... bench: 1916737 ns/iter (+/- 102250)
test btree::map::bench::iter_20 ... bench: 424 ns/iter (+/- 40)
After:
test btree::map::bench::find_rand_100 ... bench: 9 ns/iter (+/- 1)
test btree::map::bench::find_rand_10_000 ... bench: 8 ns/iter (+/- 0)
test btree::map::bench::find_seq_100 ... bench: 7 ns/iter (+/- 0)
test btree::map::bench::find_seq_10_000 ... bench: 8 ns/iter (+/- 0)
test btree::map::bench::insert_rand_100 ... bench: 136 ns/iter (+/- 5)
test btree::map::bench::insert_rand_10_000 ... bench: 380 ns/iter (+/- 34)
test btree::map::bench::insert_seq_100 ... bench: 255 ns/iter (+/- 8)
test btree::map::bench::insert_seq_10_000 ... bench: 364 ns/iter (+/- 10)
test btree::map::bench::iter_1000 ... bench: 19112 ns/iter (+/- 837)
test btree::map::bench::iter_100000 ... bench: 1911961 ns/iter (+/- 33069)
test btree::map::bench::iter_20 ... bench: 453 ns/iter (+/- 37)
2014-12-12 06:58:18 -06:00
bors
d2e2bd1b44
auto merge of #19568 : barosl/rust/enum-struct-variants-ice, r=alexcrichton
...
This pull request tries to fix #19340 , which states two ICE cases related to enum struct variants.
It is my first attempt to fix the compiler. I found this solution by trial and error, so the method used to fix the issue looks very hacky. Please review it, and direct me to find a better solution.
I'm also to add test cases. Where should I put them? Maybe `src/test/run-pass/issue-19340.rs`?
2014-12-12 09:12:08 +00:00
jbranchaud
47b071af27
Add doctests for iter
and into_iter
for BTreeSet.
2014-12-12 01:18:10 -06:00
Nick Cameron
ce4318ad86
Reviewer comments
2014-12-12 19:29:17 +13:00
Nick Cameron
ae8ba88424
Mostly non-behaviour-changing changes (style, etc.)
2014-12-12 19:11:59 +13:00
Nick Cameron
397dda8aa0
Add support for equality constraints on associated types
2014-12-12 19:11:59 +13:00
Nick Cameron
19eb4bf0b2
Add coercions from *mut to *const and from &mut to *const.
2014-12-12 16:54:57 +13:00
Matt Murphy
40f28c70d6
Implement insert for RingBuf
2014-12-11 21:14:59 -06:00
bors
da83ad8e2c
auto merge of #19514 : jbranchaud/rust/add-btree-set-bitor, r=Gankro
...
I am trying to add an implementation of `bitor` for `BTreeSet`. I think I am most of the way there, but I am going to need some guidance to take it all the way.
When I run `make check`, I get:
```
error: cannot move out of dereference of `&`-pointer
self.union(_rhs).map(|&i| i).collect::<BTreeSet<T>>()
^~
```
I'd appreciate any nudges in the right direction. If I can figure this one out, I am sure I will be able to implement `bitand`, `bitxor`, and `sub` as well.
/cc @Gankro
---
**Update**
I have added implementations for `BitOr`, `BitAnd`, `BitXor`, and `Sub` for `BTreeSet`.
2014-12-12 02:56:53 +00:00
Kang Seonghoon
577f742d7a
serialize: Avoid stray nul characters when auto-serializing char.
...
Fixes #19719 .
2014-12-12 11:51:00 +09:00
jbranchaud
cd008c4127
Add an implementation of the BitOps for BTreeSets.
...
Add initial attempt at implementing BitOr for BTreeSet.
Update the implementation of the bitor operator for BTreeSets.
`make check` ran fine through this.
Add implementations for BitAnd, BitXor, and Sub as well.
Remove the FIXME comment and add unstable flags.
Add doctests for the bitop functions.
2014-12-11 19:42:06 -06:00
Brian Anderson
e92e8ac365
Use rust-installer for installation
...
This is just a refactoring of the current installer so that Rust and Cargo
use the same codebase.
cc #16456
2014-12-11 17:14:17 -08:00
bors
193390d0e4
auto merge of #19672 : alexcrichton/rust/snapshots, r=brson
...
These snapshots were generated on the 10.7 bot which should be the first step in fixing #19643
2014-12-11 22:56:54 +00:00
Murarth
04b4b500b9
Perform compiler state reset in phase_1
2014-12-11 15:33:27 -07:00
Murarth
2c028452b5
Add LLVM ExecutionEngine API
2014-12-11 15:33:27 -07:00
Steve Klabnik
3cb10ef147
Remove mentions of sundown.
2014-12-11 16:36:11 -05:00
Steve Klabnik
31b240d6bc
Add comments with type annotations.
...
This will hopefully help people with their first steps in Rust.
Fixes #16143 .
2014-12-11 15:45:47 -05:00
Alex Crichton
52edb2ecc9
Register new snapshots
2014-12-11 11:30:38 -08:00
Barosl Lee
086c9493c8
Fix ICE when a struct variant enum contains multiple fields
...
Fixes the second case of #19340 .
2014-12-12 03:38:11 +09:00
Barosl Lee
418d1bfc9a
Fix ICE when a struct variant enum is imported from an external crate
...
Fixes the first case of #19340 .
2014-12-12 03:38:11 +09:00
bors
dea7143204
auto merge of #19377 : tbu-/rust/pr_mapinplace_fixzerosized_test, r=sfackler
2014-12-11 18:12:11 +00:00
Steve Klabnik
38d29092f9
reference: type definition -> type alias
...
Fixes #9266
2014-12-11 12:35:03 -05:00
Steve Klabnik
f473aee893
gdb < RUST_BACKTRACE
...
Fixes #19717
2014-12-11 11:47:16 -05:00
Seth Pollack
7676d0164f
Update intro.md
2014-12-11 11:21:48 -05:00