Alex Crichton [Thu, 15 Jan 2015 22:12:02 +0000 (14:12 -0800)]
rollup merge of #21170: Diggsey/issue-21058
While it's unstable and will probably be replaced or "reformed" at some point, it's useful in the mean time to be able to introspect the type system when debugging, and not be limited to sized types.
Alex Crichton [Thu, 15 Jan 2015 22:12:00 +0000 (14:12 -0800)]
rollup merge of #21168: aidanhs/aphs-doc-vec-heap
...to make it slightly clearer that there's not much point in boxing a vec.
On a different note, I read the contribution guidelines (https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#pull-request-procedure) which say I should update the copyright date for this file. But I can see that nobody else has done this so far this year, despite there being a fair number of commits.
Alex Crichton [Thu, 15 Jan 2015 22:11:54 +0000 (14:11 -0800)]
rollup merge of #21141: tcard/master
Really small correction.
This anti-example in the Closures section is supposed to fail because of a borrow, but it was failing at the type inference because of insufficient type information.
Alex Crichton [Thu, 15 Jan 2015 22:11:53 +0000 (14:11 -0800)]
rollup merge of #21133: iKevinY/mobile-rustdoc
Just a couple of tweaks to improve the appearance of pages like [The Rust Reference](http://doc.rust-lang.org/reference.html) on mobile to advance the progress of #20850. Changing the viewport wasn't quite good enough to make it mobile-friendly, as large tables forced the page to become wider than the screen width. Using `overflow-x`, tables that are too large become horizontally scrollable instead of forcing the *entire page* to become horizontally scrollable.
Also, there was at least one case where an extremely long piece of inline code was wider than the actual width of the screen (`std::ptr::copy_nonoverlapping_memory`), so I changed `word-wrap` to allow inline code to break in the middle of words instead of only text within `pre` tags.
This isn't a change included in this PR, but rather something up for discussion. Currently, code blocks that contain long lines simply wrap onto the next line. What if rather than wrapping, they were horizontally scrollable instead? I'm not sure what the general preference is regarding this.
Alex Crichton [Thu, 15 Jan 2015 22:11:53 +0000 (14:11 -0800)]
rollup merge of #21127: erickt/opt-stack
libsyntax compiled without optimization uses a lot of stack, which can cause it to run out of stack space. This PR factors out some arm handlers from `print_expr` as well as converts `advance_left` into a loop. This helps to cut down on the stack usage.
Alex Crichton [Thu, 15 Jan 2015 22:11:50 +0000 (14:11 -0800)]
rollup merge of #21115: dotdash/iter_vec
There are two places left where we used to only know the byte
size of/offset into an array and had to cast to i8 and back to get the
right addresses. But by now, we always know the sizes in terms of the
number of elements in the array. In fact we have to add an extra Mul
instruction so we can use the weird cast-to-u8 code. So we should really
just embrace our new knowledge and use simple GEPs to do the address
calculations.
Alex Crichton [Thu, 15 Jan 2015 22:11:42 +0000 (14:11 -0800)]
rollup merge of #21085: pnkfelix/pp-flowgraph-kill-labels
Add `--xpretty flowgraph,unlabelled` variant to the (unstable) flowgraph printing `rustc` option.
This makes the tests much easier to maintain; the particular details of the labels attached to exiting scopes is not worth the effort required to keep it up to date as things change in the compiler internals.
Alex Crichton [Thu, 15 Jan 2015 22:11:41 +0000 (14:11 -0800)]
rollup merge of #21075: iKevinY/intro-changes
- Make punctuation/formatting consistent with the changes made to *The Rust Programming Language* in #20782.
- Use title casing for "Safety and Speed" section.
- Reword some phrases to improve clarity.
Alex Crichton [Thu, 15 Jan 2015 22:11:27 +0000 (14:11 -0800)]
rollup merge of #20632: gchp/reference
I noticed that the `deriving` keyword is deprecated and that `derive` is the replacement. This updates the reference (and other docs) to remove the use `deriving`.
Alex Crichton [Thu, 15 Jan 2015 22:11:27 +0000 (14:11 -0800)]
rollup merge of #20463: amaranth/black_box_output
By returning the passed value black_box can be used on data being
passed to a function being benchmarked. This ensures the compiler
does not optimize the function for the input which could result in
the entire function being optimized away.
bors [Thu, 15 Jan 2015 09:12:47 +0000 (09:12 +0000)]
auto merge of #20990 : estsauver/rust/playpen_20732, r=alexcrichton
In #20732, that all links in some modules point to the same code
examples was reported. The ID's generated for documents in
librustdoc are not all unique, which means the code rendered as
text is not being properly selected.
This change makes the link to the code section that is next to
the current link.
bors [Thu, 15 Jan 2015 05:12:30 +0000 (05:12 +0000)]
auto merge of #20980 : richo/rust/final-power, r=alexcrichton
Originally, this was going to be discussed and revisted, however I've been working on this for months, and a rebase on top of master was about 1 flight's worth of work so I just went ahead and did it.
This gets you as far as being able to target powerpc with, eg:
bors [Thu, 15 Jan 2015 01:42:25 +0000 (01:42 +0000)]
auto merge of #20290 : jroesch/rust/generalize-impl-bounds, r=nikomatsakis
This should fix both #20020 and #20107. This moves out the code into its own file.
I have a couple concerns that can either be addressed in this PR or in a future one.
- The error reporting for the fulfillment context should be span aware because currently it is attached to the top
of the file which is less then desirable.
- There is a failure in the test file: run-pass/issue-2611-3.rs, this seems like it should be a failure to me, but I am not sure.
As a nit I'm not enthused about the file name, and am open to better suggestions.
Jared Roesch [Wed, 14 Jan 2015 21:43:17 +0000 (13:43 -0800)]
Refactor compare_impl_method to use all bounds
Refactor compare_impl_method into its own file. Modify the
code to stop comparing individual parameter bounds.
Instead we now use the predicates list attached to the trait
and implementation generics. This ensures consistency even
when bounds are declared in different places (i.e on
a parameter vs. in a where clause).
Niko Matsakis [Tue, 13 Jan 2015 19:01:27 +0000 (14:01 -0500)]
Fix Repr output so that it does not ICE when a self-type is
absent. This occurs while printing object type projections for
debugging (note that the `UserString` impl is much more careful about
this).
Toni Cárdenas [Wed, 14 Jan 2015 14:24:41 +0000 (15:24 +0100)]
TRPL: Anti-example failing for the wrong reason.
Really small correction.
This anti-example in the Closures section is supposed to fail because of a borrow, but it was failing at the type inference because of insufficient type information.
Kevin Yap [Wed, 14 Jan 2015 04:15:09 +0000 (20:15 -0800)]
Improve Rust Documentation & Reference on mobile
- Tables that are too wide for the screen scroll horizontally.
- Inline code that would force the page to become wider than the width
of the screen is broken in the middle of the word.
Earl St Sauver [Mon, 12 Jan 2015 09:37:01 +0000 (01:37 -0800)]
Fix playpen links to not all be the same
Fixes #20732, that all links in some modules point to the same code
examples was reported. The ID's generated for documents in
librustdoc are not all unique, which means the code rendered as
text is not being properly selected.
This change removes the unique id generation and instead changes the
frontend code to grab the correct code sample by it's relative
position in the dom.