Commit Graph

46192 Commits

Author SHA1 Message Date
Steve Klabnik ce20719717 Rollup merge of #28213 - tshepang:replace-comma, r=steveklabnik 2015-09-03 20:10:09 -04:00
Steve Klabnik 5b8241cea9 Rollup merge of #28212 - tshepang:rust-is-a-language, r=steveklabnik 2015-09-03 20:10:09 -04:00
Steve Klabnik e903d9c9b9 Rollup merge of #28210 - tshepang:typo, r=steveklabnik 2015-09-03 20:10:08 -04:00
Steve Klabnik 1401b46daa Rollup merge of #28209 - tshepang:must-be-four-spaces, r=steveklabnik
Also, add trailing commas
2015-09-03 20:10:08 -04:00
Steve Klabnik ff7f5cd0c6 Rollup merge of #28208 - matklad:grammar-whitespace-cleanup, r=steveklabnik 2015-09-03 20:10:08 -04:00
Steve Klabnik a10e87648f Rollup merge of #28207 - tshepang:flow, r=steveklabnik 2015-09-03 20:10:08 -04:00
Steve Klabnik 54279e0ced Rollup merge of #28205 - matklad:grammar-remove-proc, r=alexcrichton
As I understand, there are no proc closures in Rust any more. So this pr removes `procedure_type` production. It isn't used anywhere. The `proc` is still a keyword.

r? @steveklabnik
@bors: r+ rollup
2015-09-03 20:10:07 -04:00
Steve Klabnik 35019737cc Rollup merge of #28204 - matklad:grammar-duplicate-else-tail, r=steveklabnik
The rule `else_tail` was duplicated in `if` and `if_let` sections. I guess that this is a mistake.

r? @steveklabnik
2015-09-03 20:10:07 -04:00
Steve Klabnik 723ebc2471 Rollup merge of #28203 - benschulz:book-deref-coercion, r=brson
I have two issues with the section "Deref and method calls" of the book's chapter "Deref coercions".

 - (Minor) It says "In other words, these are the same two things in Rust:", followed by a code block in which no two things seem similar, much less the same. Presumably this sentence made more sense in a previous revision.

 - The next paragraph conflates two concepts which, imho, should kept separate. They are
    - deref coercion, i.e. inserting as many `*` as necessary and
    - implicitly referencing the receiver, i.e. inserting a single `&` to satisfy the method's `self` parameter type.

I appreciate that with the proposed changes the example becomes very contrived, even for a foo-bar-baz one. However, the current exmplanation is just wrong.
2015-09-03 20:10:07 -04:00
Steve Klabnik b96618e18b Rollup merge of #28202 - matklad:grammar-loop-labels, r=steveklabnik
This adds missing `?` marks to productions for loops and break/continue.

It also adds missing option label to while let loop.


Note that '[' foo ']' means grouping in BNF, and '?' is used for possible missing items.

r? @steveklabnik
2015-09-03 20:10:07 -04:00
Steve Klabnik 055c23da7b Rollup merge of #28167 - petrochenkov:bytelit, r=nikomatsakis
Avoid confusion with binary integer literals and binary operator expressions in libsyntax
2015-09-03 20:10:07 -04:00
bors 2727a8e1c0 Auto merge of #27984 - arielb1:misc-assemble-improvements, r=nikomatsakis
this resolves type-variables early in assemble_candidates and
bails out quickly if the self type is an inference variable (which would
fail anyway because of `assemble_candidates_from_projected_tys`).

In both these cases, `assemble_candidates_from_impls` would try to go
over all impls and match them, leading to O(`n*m`) performance. Fixing this
improves rustc type-checking performance by 10%. As type-checking is only
is 5% of compilation, this doesn't impact bootstrap times, but *does*
improve type-error-detection time which is nice.

Crates that have many dependencies and contain significant amounts of
generic functions could see a bigger perf boost. As a microbenchmark,
the crate generated by

```
echo '#![feature(rustc_private)]'
echo 'extern crate rustc_driver;'
for i in {1..1000}; do cat << _EOF_
    pub fn foo$i<T>() {
        let mut v = Vec::new();
        let _w = v.clone();
        v.push("");
    }
_EOF_
done
```

sees performance improve from 7.2 to 1.4 seconds. I imagine many crates
would fall somewhere in-between.

r? @nikomatsakis
2015-09-04 00:00:09 +00:00
christopherdumas 17fde3a34d Removed incorrect reference from #28196 2015-09-03 14:39:34 -07:00
Aleksey Kladov 73a6199248 reference grammar: fix item definition
extern_block should extern_block_item
2015-09-04 00:29:47 +03:00
Aleksey Kladov f7d5c25b3d reference grammar: whitespace cleanup 2015-09-03 23:42:33 +03:00
Tshepang Lekhonkhobe 6cdba4f766 book: it is RwLock, not RWLock 2015-09-03 22:14:28 +02:00
bors 1b908be9a0 Auto merge of #28200 - Manishearth:rollup, r=Manishearth
- Successful merges: #28164, #28170, #28184, #28186, #28187, #28188, #28191, #28193, #28194, #28195
- Failed merges:
2015-09-03 20:10:42 +00:00
Manish Goregaokar e6e175b828 Add ptr import (fixup #28187) 2015-09-04 01:40:05 +05:30
Manish Goregaokar 94807b2f9c Rollup merge of #28195 - AlisdairO:diagnostics214, r=Manishearth
As title :-)
Part of #24407.

r? @Manishearth
2015-09-04 01:40:04 +05:30
Manish Goregaokar 956c5977ac Rollup merge of #28194 - steveklabnik:add_fixme, r=alexcrichton 2015-09-04 01:40:04 +05:30
Manish Goregaokar 75ca401f2d Rollup merge of #28193 - dhuseby:fixing_bitrig_alloc_crate_tests, r=alexcrichton
@alexcrichton this will get the bitrig buildbot back to green.
2015-09-04 01:40:03 +05:30
Manish Goregaokar 3c4d6d626f Rollup merge of #28191 - llogiq:iter, r=Manishearth
Nothing too big, a few needless returns and a few closures eliminated (the latter may improve performance in some cases, at least compilation should be a bit faster).
2015-09-04 01:40:03 +05:30
Manish Goregaokar cac4a1c5c8 Rollup merge of #28188 - Manishearth:elide-core, r=alexcrichton
Makes things more greppable.

This change was made automatically by clippy + bash scripts, though I will run test passes, please review carefully.
2015-09-04 01:40:02 +05:30
Manish Goregaokar 9ea8f3e2dd Rollup merge of #28187 - petrochenkov:null, r=aturon
And replace more `0 as *const T`/`0 as *mut T`s with `null()`/`null_mut()`s

I'm not sure what is the general policy about making simple functions `const`, but `null()` and `null_mut()` seem to be good candidates.
2015-09-04 01:40:02 +05:30
Manish Goregaokar 67616f7191 Rollup merge of #28186 - thomas07vt:thomas07vt-patch-trpl-rust-inside-other-languages.md, r=steveklabnik
The embed rust file that we compile prints out 'Thread finished..' messages along with a 'done!' r? @steveklabnik
2015-09-04 01:40:02 +05:30
Manish Goregaokar 0c2924386d Rollup merge of #28184 - xiaochuanyu:patch-1, r=alexcrichton
Originally in an example it reads as follows:
```rust
fn inverse<T>() -> T
        // this is using ConvertTo as if it were "ConvertFrom<i32>"
         where i32: ConvertTo<T> {
     42.convert()
 }
```
There was no mention of `ConvertFrom` elsewhere in the page other than in this comment. Is this supposed to be `ConvertTo<i64>` ?
I'm confused by this example.
2015-09-04 01:40:01 +05:30
Tshepang Lekhonkhobe 355847f5c1 doc: reduce indentation of examples to 4 spaces
Also, add trailing commas
2015-09-03 22:08:47 +02:00
Tshepang Lekhonkhobe 23956ae1f4 book: improve flow 2015-09-03 21:54:00 +02:00
Tshepang Lekhonkhobe 197cec6ed9 book: Rust is a language, so no need to mention that fact here 2015-09-03 21:40:19 +02:00
Aleksey Kladov 59f2343bdb reference grammar: remove procedure_type 2015-09-03 22:25:47 +03:00
Aleksey Kladov 000fe00726 reference grammar: remove duplicate else_tail rule 2015-09-03 22:19:56 +03:00
benshu 986f523b89 Take method invocation semantics out of chapter on deref coercion. 2015-09-03 21:17:59 +02:00
Tshepang Lekhonkhobe 3525a13fea book: "word" feels more suitable than "name"
Also, add missing comma
2015-09-03 21:14:03 +02:00
Aleksey Kladov 83aee74fce reference grammar: loop label should be optional
This adds missing `?` marks to productions for loops and break/continue.

It also adds missing option label to while let loop
2015-09-03 22:13:50 +03:00
Tshepang Lekhonkhobe 8b2b949830 book: replace comma with a more suitable character 2015-09-03 21:11:44 +02:00
Andrew Paseltiner b8dad48435 Fix multiple mutable autoderefs with `Box`
Closes #26205.
2015-09-03 14:41:27 -04:00
Manish Goregaokar 2a40e46f18 Rollup merge of #28164 - AlisdairO:diagnostics329, r=Manishearth
As title :-)
Part of #24407.

r? @Manishearth
2015-09-03 23:30:36 +05:30
Vadim Petrochenkov 52417d5b5c Implement `Borrow` for fixed-size arrays 2015-09-03 19:35:26 +03:00
Alisdair Owens 130e8d4ff2 add long diagnostics for E0214 2015-09-03 17:01:50 +01:00
Georg Brandl a88659d8a6 middle: use filter_map instead of flat_map with Option iters 2015-09-03 17:54:59 +02:00
bors 0762f58c11 Auto merge of #28192 - Manishearth:lint-hir, r=eddyb
LintPass still uses the AST, though there isn't any need to. This makes it hard to move lints to the HIR.

r? @eddyb @nrc
2015-09-03 15:42:16 +00:00
Manish Goregaokar 7732ad85df Move lints to HIR 2015-09-03 20:58:07 +05:30
Steve Klabnik 9e79fc2d22 Add an issue number to this FIXME 2015-09-03 11:00:40 -04:00
Dave Huseby e5e4744766 Fixes #27886 -- bitrig does not use jemalloc (yet) 2015-09-03 07:26:17 -07:00
bors 9e9c83b899 Auto merge of #28176 - arielb1:fast-index, r=eddyb
r? @eddyb
2015-09-03 13:01:03 +00:00
llogiq e1f89196a0 take mapped function by mutable reference 2015-09-03 14:50:06 +02:00
Manish Goregaokar a520568ae7 Elide lifetimes in libcore 2015-09-03 17:46:35 +05:30
Ariel Ben-Yehuda 16f75f773d create a region-map for types in generics
Fixes #28181
This may fix #28151
2015-09-03 13:35:41 +03:00
llogiq b6a3978886 clippy improvements to iterators 2015-09-03 12:35:34 +02:00
Ariel Ben-Yehuda cde09e7ca3 rewrite metadata indexing
this improves the compilation time for small crates by ~20%
2015-09-03 12:59:51 +03:00