Commit Graph

48350 Commits

Author SHA1 Message Date
Steve Klabnik
0c93e727c2 Mention multiple impl blocks in TRPL
Fixes #29322
2015-11-04 10:35:09 +01:00
Steve Klabnik
e9989d526d Add note about HashMap::capacity's bounds
Fixes #24591
2015-11-04 10:19:54 +01:00
Steve Klabnik
2f4fbb2bf5 Merge first three chapters into one.
Conceptually, this makes more sense as one introductory chapter.
2015-11-04 10:06:50 +01:00
bors
1ad89e0de6 Auto merge of #29550 - nrc:save-root, r=alexcrichton 2015-11-04 08:39:44 +00:00
Toby Scrace
6fb2333d77 Fix #29542
Reword "Writing the logic" paragraph to prevent `unwrap` being confused
for a macro.
2015-11-04 07:42:54 +00:00
Steven Fackler
d0bc6a1f49 Don't chain method calls in #[derive(Debug)]
Closes #29540
2015-11-03 22:48:28 -08:00
bors
cc403b6c33 Auto merge of #29478 - angelsl:msvc2, r=alexcrichton
r? @alexcrichton
2015-11-04 06:07:24 +00:00
Jonathan S
fb2129e043 Remove the RefCell around freevars and freevars_seen in librustc_resolve 2015-11-03 23:45:47 -06:00
angelsl
9fe4e962e1 Build compiler-rt/builtins with MSVC 2015-11-04 11:43:41 +08:00
bors
a216e84727 Auto merge of #29217 - nikomatsakis:mir-trans, r=dotdash
This branch implements a variant of trans that is based on MIR. It is very incomplete (intentionally), and had only the goal of laying out enough work to enable more incremental follow-on patches. Currently, only fns tagged with `#[rustc_mir]` use the new trans code. I plan to build up a meta-issue as well that tracks the various "not-yet-implemented" points. The only fn that has been tested so far is this amazingly complex "spike" fn:

```rust
#[rustc_mir]
fn sum(x: i32, y: i32) -> i32 {
    x + y
}
```

In general, the most interesting commit is the last one. There are some points on which I would like feedback from @rust-lang/compiler:

- I did not use `Datum`. Originally, I thought that maybe just a `ValueRef` would be enough but I wound up with two very simple structures, `LvalueRef` and `OperandRef`, that just package up a `ValueRef` and a type. Because of MIR's structure, you don't wind up mixing by-ref and by-value so much, and I tend to think that a thinner abstraction layer is better here, but I'm not sure.
- Related to the above, I expect that sooner or later we will analyze temps (and maybe variables too) to find those whose address is never taken and which are word-sized and which perhaps meet a few other criteria. For those, we'll probably want to avoid the alloca, just because it means prettier code.
- I generally tried to re-use data structures from elsewhere in trans, though I'm sure we can trim these down.
- I didn't do any debuginfo primarily because it seems to want node-ids and we have only spans. I haven't really read into that code so I don't know what's going on there.

r? @nrc
2015-11-04 02:13:05 +00:00
Niko Matsakis
e78786315b remove unused import 2015-11-03 20:38:02 -05:00
bors
c340ea1de5 Auto merge of #29547 - arielb1:speculative-upvar, r=eddyb
`resolve_identifier` used to mark a variable as an upvar when used within a closure. However, the function is also used for the "unnecessary qualification" lint, which would mark paths whose last component had the same name as a local as upvars.

Fixes #29522 

r? @eddyb
2015-11-04 00:30:05 +00:00
Niko Matsakis
b46c0fc497 address nits from dotdash 2015-11-03 18:00:35 -05:00
Niko Matsakis
9c9f4be9df correct typos 2015-11-03 18:00:30 -05:00
Niko Matsakis
6a5b263503 Add (and use) an analysis to determine which temps can forgo an alloca. 2015-11-03 18:00:30 -05:00
Nick Cameron
6252af9ce1 save-analysis: emit the crate root 2015-11-04 10:16:06 +13:00
bors
708e319f80 Auto merge of #29545 - mystor:vec-deque-test-panic, r=bluss
I think this should fix the test failures in debug mode from #29492

The assertion was written incorrectly, and I don't like the way the new assertion is written, but I _think_ it does the right thing now.
2015-11-03 21:12:03 +00:00
Brian Anderson
48c170df36 doc: Link to cargo docs, not just crates.io 2015-11-03 12:55:03 -08:00
Brian Anderson
6ca0fa9af2 doc: Add the Rustonomicon 2015-11-03 12:52:18 -08:00
Brian Anderson
53fad90608 doc: Remove community info 2015-11-03 12:49:21 -08:00
Brian Anderson
f553292cf6 doc: Remove non-documentation tool links 2015-11-03 12:48:47 -08:00
Brian Anderson
be9afcca89 doc: Remove irrelevant info about rbe 2015-11-03 12:47:57 -08:00
Brian Anderson
ad900dae92 mk: Move some old docs to the deprecated list 2015-11-03 12:46:06 -08:00
bors
2a7bd082ac Auto merge of #29532 - Ryman:cow_path, r=alexcrichton 2015-11-03 19:29:44 +00:00
Ariel Ben-Yehuda
ca04855a06 resolve: don't speculatively create freevars when resolving
Fixes #29522
2015-11-03 21:08:42 +02:00
Amanieu d'Antras
59c5191c21 Add test for inline asm indirect memory operands 2015-11-03 18:13:03 +00:00
Michael Layzell
26db71783f Correct incorrect assertion in VecDeque::wrap_copy 2015-11-03 13:03:36 -05:00
angelsl
54d85b4f2f Update compiler-rt 2015-11-04 01:41:46 +08:00
Kevin Butler
f57621535e libcollections: DRY up a PartialEq impl for String 2015-11-03 17:41:42 +00:00
Kevin Butler
cc830ef18b libstd: implement PartialEq<Path> for PathBuf and Cow<Path> 2015-11-03 17:41:42 +00:00
bors
de11d2aa83 Auto merge of #29529 - Ryman:rustdoc-cap-lints, r=alexcrichton
This sets the `cap-lints` setting to 'allow' for all doc compilations. There's precedent for this as rustdoc [already whitelists unstable code](https://github.com/rust-lang/rust/blob/master/src/librustdoc/core.rs#L112) when compiling documentation, with the expectation being that a regular compile will complain about any problems. I think the same justification applies here.

Problem case in the wild: https://github.com/laumann/compiletest-rs/pull/28

r? @Manishearth
2015-11-03 17:02:13 +00:00
Amanieu d'Antras
1805e5fb48 Allow indirect operands to be used as inputs for inline asm 2015-11-03 15:19:46 +00:00
bors
4aa1f59e1e Auto merge of #29515 - Manishearth:ice-itembody, r=eddyb
r? @eddyb or @nrc
2015-11-03 15:19:07 +00:00
Manish Goregaokar
6468292c35 Fix ICE with unresolved associated items in closures (fixes #28971) 2015-11-03 20:09:20 +05:30
bors
c143ae7764 Auto merge of #29495 - meqif:fix_unindent_tabs, r=steveklabnik
A line may be indented with either spaces or tabs, but not a mix of both. If there is a mix of tabs and spaces, only the kind that occurs first is counted.

This addresses issue #29268.
2015-11-03 13:34:09 +00:00
Jake Goulding
b0ca039233 Mention what iterator terminators do with an empty iterator 2015-11-03 08:25:56 -05:00
Steve Klabnik
75a6d51750 Make some edits as per No Starch.
Lots of little details and things.
2015-11-03 13:56:06 +01:00
Bruno Tavares
bf7c92038e Closes #24954 2015-11-03 10:20:45 -02:00
bors
f18c905163 Auto merge of #29535 - Toby-S:patch-1, r=steveklabnik
This basically just inlines the fatal! macro from BurntSushi's [blog post](http://blog.burntsushi.net/rust-error-handling/#argument-parsing).

cc @steveklabnik
2015-11-03 11:51:34 +00:00
Toby Scrace
d9df16bf61 Fix #29533
This replaces usage of the (missing) `fatal!` macro with `panic!`.
2015-11-03 11:46:05 +00:00
Niko Matsakis
544b06d455 Add a MIR visitor 2015-11-03 06:34:23 -05:00
Kevin Butler
7690ec89ff libstd: implement From<&Path|PathBuf> for Cow<Path> 2015-11-03 11:25:34 +00:00
Seo Sanghyeon
61e5b6dfdb Warn unused_assignments for arguments 2015-11-03 19:04:36 +09:00
bors
5b87225deb Auto merge of #29509 - vadimcn:readme, r=alexcrichton
The current readme provides critical information about gcc versions too late in the flow.

r? @steveklabnik
2015-11-03 10:01:06 +00:00
Niko Matsakis
e84829d51d Plumbing to omit allocas for temps when possible (currently unused) 2015-11-03 04:35:00 -05:00
Niko Matsakis
02017b30eb New trans codepath that builds fn body from MIR instead. 2015-11-03 04:35:00 -05:00
Niko Matsakis
877b93add2 Move shifting code out of expr and into somewhere more accessible 2015-11-03 04:35:00 -05:00
Niko Matsakis
81ff2c2f8e Change adt case handling fn to be less tied to match 2015-11-03 04:35:00 -05:00
Niko Matsakis
0a62158a4e Add helper methods that require tcx; these compute types of
lvalues and operands
2015-11-03 04:35:00 -05:00
Niko Matsakis
044096b3e9 Change Call operands to be, well, Operands 2015-11-03 04:35:00 -05:00