Commit Graph

37194 Commits

Author SHA1 Message Date
P1start
ed769bf87f Fix up some ‘help’ messages 2015-01-20 19:51:44 +13:00
bors
7f8c687fdf Auto merge of #19490 - oli-obk:json_non_string_key_maps, r=alexcrichton
importing object type string key maps is still supported
writing them should be explicit, and can be done as follows

```rust
let some_tree_map : TreeMap<String, Json> = ...;
Json::Object(some_tree_map).to_writer(&mut writer);
```

related to #8335, #9028, #9142
2015-01-19 21:37:52 +00:00
bors
4032b85aec Auto merge of #21278 - thchittenden:issue-21033-struct-var-pattern-fix, r=alexcrichton
Closes #21033. The new strategy for parsing a field pattern is to look 1 token ahead and if it's a colon, parse as "fieldname: pat", otherwise parse the shorthand form "(box) (ref) (mut) fieldname)". The previous strategy was to parse "(ref) (mut) fieldname" then if we encounter a colon, throw an error if either "ref" or "mut" were encountered.
2015-01-19 19:40:51 +00:00
bors
54c9a4655b Auto merge of #20082 - pczarn:btree-bounded-iter, r=Gankro
Part of collections reform v1, #18424
Also, iteration is simplified:
```
before
test btree::map::bench::iter_1000                          ... bench:     17177 ns/iter (+/- 6302)
test btree::map::bench::iter_100000                        ... bench:   1735731 ns/iter (+/- 23908)
test btree::map::bench::iter_20                            ... bench:       386 ns/iter (+/- 148)
after
test btree::map::bench::iter_1000                          ... bench:     15777 ns/iter (+/- 346)
test btree::map::bench::iter_100000                        ... bench:   1602604 ns/iter (+/- 73629)
test btree::map::bench::iter_20                            ... bench:       339 ns/iter (+/- 91)
```
cc @gereeter @cgaebel
r? @Gankro
2015-01-19 17:43:47 +00:00
Tom Chittenden
d8372139a7 Fixes #21033 with accompanying test. 2015-01-19 11:58:01 -05:00
Piotr Czarnecki
429c23d5f4 Implement range and range_mut for BTree
Simplify BTree's iterators, too.
2015-01-19 17:48:59 +01:00
bors
cda3490f8f Auto merge of #21269 - alexcrichton:issue-6936, r=pnkfelix
This commit modifies resolve to prevent conflicts with typedef names in the same
method that conflits are prevented with enum names. This is a breaking change
due to the differing semantics in resolve, and any errors generated on behalf of
this change require that a conflicting typedef, module, or structure to be
renamed so they do not conflict.

[breaking-change]
Closes #6936
2015-01-19 15:44:41 +00:00
Oliver 'ker' Schneider
a320149dcc ugly hack to convert BadHashMapKey error to general fmt::Error 2015-01-19 14:22:17 +01:00
Oliver 'ker' Schneider
0478a8c1d7 add unit test for non string/numeric map keys 2015-01-19 14:22:16 +01:00
Oliver 'ker' Schneider
d727f99107 lower FnMut to FnOnce since json-hack is no longer required
Conflicts:
	src/libserialize/serialize.rs
2015-01-19 14:22:16 +01:00
Oliver 'ker' Schneider
f015a3b871 json-encoder: report error when hash map key is not string or numeric 2015-01-19 14:22:15 +01:00
bors
43f2c199e4 Auto merge of #21282 - Aatch:init-memzero, r=alexcrichton
LLVM gets overwhelmed when presented with a zeroinitializer for a large
type. In unoptimised builds, it generates a long sequence of stores to
memory. In optmised builds, it manages to generate a standard memset of
zero values, but takes a long time doing so.

Call out to the `llvm.memset` function to zero out the memory instead.

Fixes #21264
2015-01-19 12:17:07 +00:00
bors
7b87900d72 Auto merge of #20874 - klutzy:windows-dynamic-lib, r=alexcrichton
This is a [breaking-change] since `std::dynamic_lib::dl` is now
private.

When `LoadLibraryW()` fails, original code called `errno()` to get error
code.  However, there was local allocation of `Vec` before
`LoadLibraryW()`, and it drops before `errno()`, and the drop
(deallocation) changed `errno`! Therefore `dynamic_lib::open()` thought
it always succeeded.
This commit fixes the issue.

This commit also sets Windows error mode during `LoadLibrary()` to
prevent "dll load failed" dialog.
2015-01-19 10:19:23 +00:00
bors
135cac8528 Auto merge of #21099 - sanxiyn:opt-return-ty, r=alexcrichton
This avoids having ast::Ty nodes which have no counterpart in the source.
2015-01-19 08:22:58 +00:00
Alex Crichton
3121c04043 Fix typedef/module name conflicts in the compiler 2015-01-18 18:26:34 -08:00
Alex Crichton
2549cbec9d rustc_resolve: Do not allow mods to shadow types
This commit modifies resolve to prevent conflicts with typedef names in the same
method that conflits are prevented with enum names. This is a breaking change
due to the differing semantics in resolve, and any errors generated on behalf of
this change require that a conflicting typedef, module, or structure to be
renamed so they do not conflict.

[breaking-change]
Closes #6936
2015-01-18 18:25:55 -08:00
Alex Crichton
46366faf61 rustc_resolve: De-indent by breaking out of match
Helps reduce some rightward drift
2015-01-18 18:25:55 -08:00
bors
bd8a43c668 Auto merge of #21267 - danslapman:master, r=alexcrichton
This patch fixes IP_ADD_MEMBERSHIP problem described here: https://github.com/rust-lang/rust/issues/20381

I've tested on my ProbeR project, everything seems ok.
2015-01-19 01:45:36 +00:00
James Miller
25a4adc62f Reduce size of array in test case to 1MB 2015-01-19 09:22:54 +13:00
James Miller
9c5173f8e5 Add test to catch performance regressions 2015-01-19 09:21:23 +13:00
James Miller
0859e5ebb3 Use zero_mem instead of a zerointializer for init intrinsic
LLVM gets overwhelmed when presented with a zeroinitializer for a large
type. In unoptimised builds, it generates a long sequence of stores to
memory. In optmised builds, it manages to generate a standard memset of
zero values, but takes a long time doing so.

Call out to the `llvm.memset` function to zero out the memory instead.
2015-01-19 09:21:23 +13:00
klutzy
d053ccb45f std::dynamic_lib: Fix Windows error handling
This is a [breaking-change] since `std::dynamic_lib::dl` is now
private.

When `LoadLibraryW()` fails, original code called `errno()` to get error
code.  However, there was local allocation of `Vec` before
`LoadLibraryW()`, and it drops before `errno()`, and the drop
(deallocation) changed `errno`! Therefore `dynamic_lib::open()` thought
it always succeeded.
This commit fixes the issue.

This commit also sets Windows error mode during `LoadLibrary()` to
prevent "dll load failed" dialog.
2015-01-19 00:12:45 +09:00
Seo Sanghyeon
3f0cc8011a Make output type in ast::FnDecl optional 2015-01-18 22:49:19 +09:00
bors
dcaeb6aa23 auto merge of #20901 : dgrunwald/rust/update-token-can-begin-expr, r=sanxiyn
* add `Token::AndAnd` (double borrow)
 * add `Token::DotDot` (range notation)
 * remove `Token::Pound` and `Token::At`

This fixes a syntax error when parsing `fn f() -> RangeTo<i32> { return ..1; }`.

Also, remove `fn_expr_lookahead`.
It's from the `fn~` days and seems to no longer be necessary.
2015-01-18 11:28:53 +00:00
bors
30f081e548 auto merge of #21276 : huonw/rust/trait-suggestion-nits, r=nikomatsakis
Follow up to #21008.

r? @nikomatsakis
2015-01-18 09:21:42 +00:00
bors
a833337943 auto merge of #21288 : brson/rust/snaps, r=alexcrichton
This fixes the issues mentioned in https://github.com/rust-lang/rust/pull/21236, as well as the one https://github.com/rust-lang/rust/issues/21230 where `CFG_BOOTSTRAP_KEY` was being set to simply 'N'. It changes the build such that `RUSTC_BOOTSTRAP_KEY` is only exported on -beta and -stable, so that the behavior of the -dev, -nightly, and snapshot compilers is the same everywhere.

Haven't run it completely through 'make check' yet, but the I have verified that the aforementioned issues are fixed.

r? @alexcrichton cc @eddyb
2015-01-18 05:48:56 +00:00
bors
6da8827482 auto merge of #21330 : JeffBelgum/rust/collections-reform-issue-19986-add-append-and-split-off, r=Gankro
Please review carefully. Contains unsafe and is my first commit to Rust.

Uses ptr::copy_nonoverlapping_memory. Attempts to handle zero-size types correctly.
2015-01-18 03:11:42 +00:00
Brian Anderson
8b2335a01d Add allow(unstable) to librustc_privacy 2015-01-17 16:38:04 -08:00
Brian Anderson
5cfbecfdb4 Add allow(unstable) to more tests 2015-01-17 16:38:04 -08:00
Brian Anderson
9035ba5f76 Add allow(unstable) to driver.rs 2015-01-17 16:38:04 -08:00
Brian Anderson
1f46ae285d Add allow(unstable) to tests that need it 2015-01-17 16:38:04 -08:00
Brian Anderson
3e38926ff4 configure: Use a more portable 'date' command to create the bootstrap key 2015-01-17 16:38:04 -08:00
Brian Anderson
6f3a80e411 Set allow(unstable) in crates that use unstable features
Lets them build with the -dev, -nightly, or snapshot compiler
2015-01-17 16:38:04 -08:00
Brian Anderson
056f8f0251 mk: Don't set RUSTC_BOOTSTRAP_KEY on -dev and -nightly. Not needed 2015-01-17 16:37:34 -08:00
Brian Anderson
fa1d63acd3 mk: Revert hack to pull the bootstrap key from the snapshot bins 2015-01-17 16:37:34 -08:00
Eduard Burtescu
89b80faa8e Register new snapshots. 2015-01-17 16:37:34 -08:00
Jeff Belgum
08e712ebe9 add append to vec with tests 2015-01-17 16:15:21 -08:00
bors
f4f10dba29 auto merge of #21300 : steveklabnik/rust/rollup, r=steveklabnik
manual rollup to fix some conflicts and diagnose why the test is failing...
2015-01-17 20:31:08 +00:00
Steve Klabnik
6553c0f5eb Fix more rollup problems 2015-01-17 15:25:42 -05:00
Steve Klabnik
69e9b462e9 fix rollup 2015-01-17 13:58:54 -05:00
Alfie John
2c64023e3e docs: grammar fix 2015-01-17 10:51:53 -05:00
Nick Howell
0c26524134 doc: Remove extra whitespace in the middle of lines to provide alignment
"Idiomatic code should not use extra whitespace in the middle of a line to provide alignment."
http://aturon.github.io/style/whitespace.html

I realize the linked page still needs an RFC, but the docs should be written in accordance with the guidelines nevertheless.
2015-01-17 10:51:53 -05:00
Alex Crichton
34fa70fba5 std: Move the bitflags! macro to a gated crate
In accordance with [collections reform part 2][rfc] this macro has been moved to
an external [bitflags crate][crate] which is [available though
crates.io][cratesio]. Inside the standard distribution the macro has been moved
to a crate called `rustc_bitflags` for current users to continue using.

[rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0509-collections-reform-part-2.md
[crate]: https://github.com/rust-lang/bitflags
[cratesio]: http://crates.io/crates/bitflags

The major user of `bitflags!` in terms of a public-facing possibly-stable API
today is the `FilePermissions` structure inside of `std::io`. This user,
however, will likely no longer use `bitflags!` after I/O reform has landed. To
prevent breaking APIs today, this structure remains as-is.

Current users of the `bitflags!` macro should add this to their `Cargo.toml`:

    bitflags = "0.1"

and this to their crate root:

    #[macro_use] extern crate bitflags;

Due to the removal of a public macro, this is a:

[breaking-change]
2015-01-17 10:51:07 -05:00
Steve Klabnik
02968389dc Beef up Copy documentation
Fixes #21249
Fixes #11540
2015-01-17 10:51:07 -05:00
Steve Klabnik
433ea0bd55 Add C -> Rust example to FFI chapter of the book.
Fixes #10489.
2015-01-17 10:51:07 -05:00
Steve Klabnik
d1ab3799bd Update syntax of ignored test. 2015-01-17 10:51:07 -05:00
Steve Klabnik
d5091c9cc9 Fix up titles of TRPL chapters 2015-01-17 10:51:07 -05:00
Volker Mische
f12e60a5c8 Make Index trait example clearer
The example of the `Index` and `IndexMut` trait contained too much `Foo`.
It now contains a bit more `Bar` to make things clearer which parts are
defining the type of the index.
2015-01-17 10:51:07 -05:00
Ms2ger
0109ceaf82 Fix typo. 2015-01-17 10:51:07 -05:00
Corey Farwell
f979f91ae2 Bump LICENSE copyright year 2015-01-17 10:51:07 -05:00