60791 Commits

Author SHA1 Message Date
Alex Crichton
e8f9d2d43a travis: Get an emscripten builder online
This commit adds a new entry to the Travis matrix which will execute emscripten
test suites. Along the way it updates a few bits of the test suite to continue
passing on emscripten, such as:

* Ignoring i128/u128 tests as they're presumably just not working (didn't
  investigate as to why)
* Disabling a few process tests (not working on emscripten)
* Ignore some num tests in libstd (#39119)
* Fix some warnings when compiling
2017-01-19 13:54:19 -08:00
bors
f0b4207598 Auto merge of #39136 - keeperofdakeys:proc-macro-doc-test, r=alexcrichton
Stop warning when doc testing proc macro crates

Fixes #39064

Add the test option to the session struct that is passed
to phase_2_configure_and_expand function inside the
rustdoc test module.

This prevents the warning code from triggering when
parsing proc_macro_derive attributes, just like when
`--test` is normally invoked.

This change makes the warning disappear, but I'm not sure what else it might change. So this early PR is mainly to run the test suite, and to get feedback.
2017-01-19 21:15:12 +00:00
Cesar Eduardo Barros
465d24e1a0 book: size and align in trait object vtables are used
The book currently claims that the `size` and `align` fields in the
trait object vtable are not used, but this is false. These two fields
are used by the stable `mem::size_of_val` and `mem::align_of_val`
functions.

See the `ty::TyDynamic` case of the `glue::size_and_align_of_dst`
function in librustc_trans, which is used to implement both intrinsics
in the unsized case.
2017-01-19 18:16:11 -02:00
bors
8e29b4d387 Auto merge of #38465 - japaric:msp430-interrupt, r=eddyb
calling convention for MSP430 interrupts

This calling convention is used to define interrup handlers on MSP430 microcontrollers. Usage looks like this:

``` rust
#[no_mangle]
#[link_section = "__interrupt_vector_10"]
pub static TIM0_VECTOR: unsafe extern "msp430-interrupt" fn() = tim0;

unsafe extern "msp430-interrupt" fn tim0() {
  P1OUT.write(0x00);
}
```

which generates the following assembly:

``` asm
Disassembly of section __interrupt_vector_10:

0000fff2 <TIM0_VECTOR>:
    fff2:       10 c0           interrupt service routine at 0xc010

Disassembly of section .text:

0000c010 <_ZN3msp4tim017h3193b957fd6a4fd4E>:
    c010:       c2 43 21 00     mov.b   #0,     &0x0021 ;r3 As==00
    c014:       00 13           reti
        ...
```
2017-01-19 18:32:12 +00:00
bors
47965f51e6 Auto merge of #39180 - GuillaumeGomez:rollup, r=GuillaumeGomez
Rollup of 11 pull requests

- Successful merges: #38457, #38922, #38970, #39039, #39091, #39115, #39121, #39149, #39150, #39151, #39165
- Failed merges:
2017-01-19 16:09:42 +00:00
Oliver Schneider
98fef41d63
test slice patterns with exclusive range patterns 2017-01-19 15:14:02 +01:00
Oliver Schneider
63a8eb9370
check exclusive_range_pattern feature gate 2017-01-19 15:13:44 +01:00
Jorge Aparicio
e928c75847 add cfail test for the new feature gate 2017-01-19 08:15:05 -05:00
Guillaume Gomez
3946079d37 Rollup merge of #39165 - frewsxcv:slice, r=GuillaumeGomez
A few improvements to the slice docs.

* Simplify `Option::iter_mut` doc example.
* Document 'empty' corner-cases for `slice::{starts_with, ends_with}`.
* Indicate 'true' as code-like.
2017-01-19 11:56:12 +01:00
Guillaume Gomez
87482ee03a Rollup merge of #39151 - canndrew:feature-gate-uninhabited-references, r=brson
Feature gate `&Void`'s uninhabitedness.

Here's a totally crazy PR which should never be merged.
2017-01-19 11:56:11 +01:00
Guillaume Gomez
c593ff4ce5 Rollup merge of #39150 - birkenfeld:slice-doc, r=GuillaumeGomez
collections: update docs of slice get() and friends

Resubmit of #38216.

r? @GuillaumeGomez

BTW, instead of closing a PR just because it is old and the team member who offered to fix it up did not have the time to do so, why not ping them instead? (cc @alexcrichton)
2017-01-19 11:56:09 +01:00
Guillaume Gomez
2c044753f9 Rollup merge of #39149 - circuitfox:E0122-type-def-trait-bounds-where-clause, r=arielb1
E0122 should apply with where clauses

Fixes #39122
2017-01-19 11:56:08 +01:00
Guillaume Gomez
4603c0e37f Rollup merge of #39121 - grimreaper:eax/thethe, r=apasel422
minor typo fix

None
2017-01-19 11:56:06 +01:00
Guillaume Gomez
9aeccf3297 Rollup merge of #39115 - king6cong:master, r=nikomatsakis
consistent doc wording
2017-01-19 11:56:06 +01:00
Guillaume Gomez
ba76f5158c Rollup merge of #39091 - richard-imaoka:E0491-long-explanation, r=GuillaumeGomez
Add error explanation for E0491

Refs #32777

Please let me know if any question or anything doesn't look right about this.
2017-01-19 11:56:04 +01:00
Guillaume Gomez
7985ae0bb1 Rollup merge of #39039 - michaelwoerister:ignore-gdb-version, r=nrc
debuginfo: Ignore optimized enum tests for GDB versions that can't handle them.

Fixes https://github.com/rust-lang/rust/issues/38948.

r? @nrc
cc @Manishearth
2017-01-19 11:56:03 +01:00
Guillaume Gomez
223e084141 Rollup merge of #38970 - apasel422:may-dangle, r=pnkfelix
Deprecate `#[unsafe_destructor_blind_to_params]`

CC #34761

r? @pnkfelix
2017-01-19 11:56:02 +01:00
Guillaume Gomez
cabfb078b0 Rollup merge of #38922 - chris-morgan:fs-markdown-link-fix, r=steveklabnik
Fix a couple of bad Markdown links
2017-01-19 11:56:01 +01:00
Guillaume Gomez
ced04ff5c6 Rollup merge of #38457 - frewsxcv:include, r=GuillaumeGomez
Improvements to 'include' macro documentation.

None
2017-01-19 11:56:00 +01:00
Vadim Petrochenkov
853f697476 Fix regression in parsing of trait object types 2017-01-19 13:28:45 +03:00
Jack Vickeridge
ea70a88710 Use fs::symlink_metadata in doc for is_symlink
fs::metadata() follows symlinks so is_symlink() will always return
false. Use symlink_metadata instead in the example in the
documentation.

See issue #39088.
2017-01-19 09:30:58 +00:00
Oliver Schneider
c951341a78
add exclusive range patterns under a feature gate 2017-01-19 10:13:32 +01:00
bors
74c42ac173 Auto merge of #38464 - clarcharr:ip_cmp, r=sfackler
PartialEq and PartialOrd between IpAddr and Ipv[46]Addr.

PartialEq was rather useful, so, I figured that I'd implement it. I added PartialOrd for good measure.
2017-01-19 03:34:05 +00:00
Jorge Aparicio
6296d52ba6 calling convention for MSP430 interrupts
This calling convention is used to define interrup handlers on MSP430
microcontrollers. Usage looks like this:

``` rust
#[no_mangle]
#[link_section = "__interrupt_vector_10"]
pub static TIM0_VECTOR: unsafe extern "msp430-interrupt" fn() = tim0;

unsafe extern "msp430-interrupt" fn tim0() {
  P1OUT.write(0x00);
}
```

which generates the following assembly:

``` asm
Disassembly of section __interrupt_vector_10:

0000fff2 <TIM0_VECTOR>:
    fff2:       10 c0           interrupt service routine at 0xc010

Disassembly of section .text:

0000c010 <_ZN3msp4tim017h3193b957fd6a4fd4E>:
    c010:       c2 43 21 00     mov.b   #0,     &0x0021 ;r3 As==00
    c014:       00 13           reti
        ...
```
2017-01-18 20:42:54 -05:00
bors
2263d1ba29 Auto merge of #38712 - clarcharr:duration_sum, r=sfackler
Sum for Duration

Implemented the `Sum` trait for `Duration`. Seems reasonable.
2017-01-19 01:09:46 +00:00
Esteban Küber
2883186180 Use multiline Diagnostic for candidate in other module 2017-01-18 16:33:25 -08:00
Alex Crichton
c457b819d7 travis: Stop uploading sha256 files
We'll generate these later in the build process and otherwise they could just
cause spurious failures with files overwriting one another.
2017-01-18 16:10:05 -08:00
Corey Farwell
c8822da79b A few improvements to the slice docs.
* Simplify `Option::iter_mut` doc example.
* Document 'empty' corner-cases for `slice::{starts_with, ends_with}`.
* Indicate 'true' as code-like.
2017-01-18 19:02:12 -05:00
Mike Hommey
265bd53fe9 Update jemalloc to include various fixes for OSX 10.12 2017-01-19 09:01:52 +09:00
Josh
d492433744 Add doctest to the proc-macro derive-test 2017-01-19 09:31:55 +11:00
Josh
c759aea5b3 Stop warning when doc testing proc macro crates
Add the actually_rustdoc option to the session that
is passed  to phase_2_configure_and_expand function
inside the rustdoc test module.

This prevents the warning code from triggering when
parsing proc_macro_derive attributes, just like when
`--test` is normally invoked.
2017-01-19 08:31:29 +11:00
Michael Woerister
deeba3443e Add regression test for debuginfo + LTO 2017-01-18 11:24:43 -05:00
Guillaume Gomez
08c20bb017 Add missing Debug implementation for librand structs 2017-01-18 17:13:47 +01:00
Andrew Cann
2c6bc18610 Feature gate &Void's uninhabitedness.
References to empty types are only considered empty if feature(never_type) is
enabled.
2017-01-18 15:05:28 +08:00
Georg Brandl
871357a534 collections: update docs of slice get() and friends
for the new SliceIndex trait.  Also made the docs of the unchecked
versions a bit clearer; they return a reference, not an "unsafe
pointer".
2017-01-18 07:25:09 +01:00
Chris Stankus
5c58653e46 E0122 should apply with where clauses 2017-01-18 00:16:19 -06:00
bors
c8af93f090 Auto merge of #38168 - estebank:help-E0034, r=nrc
E0034: provide disambiguated syntax for candidates

For a given file

```rust
trait A { fn foo(&self) {} }
trait B : A { fn foo(&self) {} }

fn bar<T: B>(a: &T) {
  a.foo()
}
```

provide the following output

```
error[E0034]: multiple applicable items in scope
 --> file.rs:6:5
  |
6 |   a.foo(1)
  |     ^^^ multiple `foo` found
  |
note: candidate #1 is defined in the trait `A`
 --> file.rs:2:11
  |
2 | trait A { fn foo(&self, a: usize) {} }
  |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
help: to use it here write `A::foo(&a, 1)` instead
 --> file.rs:6:5
  |
6 |   a.foo(1)
  |     ^^^
note: candidate #2 is defined in the trait `B`
 --> file.rs:3:15
  |
3 | trait B : A { fn foo(&self, a: usize) {} }
  |               ^^^^^^^^^^^^^^^^^^^^^^^^^^
help: to use it here write `B::foo(&a, 1)` instead
 --> file.rs:6:5
  |
6 |   a.foo(1)
  |     ^^^
```

Fix #37767.
2017-01-18 04:45:25 +00:00
Alex Crichton
92e98a06d4 travis: Fix post-failure lldb invocation
Pass an absolute path, not just the basename.
2017-01-17 18:55:24 -08:00
bors
be1daa4a18 Auto merge of #39019 - nikomatsakis:issue-38919, r=eddyb
only consider value items when searching for methods, not types

Fixes #38919

r? @eddyb
2017-01-18 02:20:03 +00:00
Niko Matsakis
f57d5ad7e1 check inherent impls of traits for overlap as well 2017-01-17 18:32:09 -05:00
Niko Matsakis
d25f066c07 run rustdoc tests in the same sort of thread rustc runs in 2017-01-17 18:15:08 -05:00
Niko Matsakis
d82d4b66f2 tolerate None return from get_line 2017-01-17 17:56:03 -05:00
Niko Matsakis
2bade8133c more complete error message 2017-01-17 17:55:49 -05:00
Esteban Küber
fc774e629f Teach Diagnostics to highlight text 2017-01-17 14:28:53 -08:00
Brian Anderson
a0a4af139d 1.15 release notes 2017-01-17 22:20:26 +00:00
gralpli
9fd3860e56 Fix ICE when compiling fn f<T: ?for<'a> Sized>() {} 2017-01-17 22:52:43 +01:00
bors
c07a6ae77c Auto merge of #37972 - bluss:iter-find-is-on-a-roll, r=sfackler
Improve the slice iterator's searching methods

Improve all, any, find, position, rposition by explicitly unrolling the loop for the slice iterators.

- Introduce a few extension methods and functions for raw pointers make the new code easy to express
- Introduce helper methods `search_while, rsearch_while` that generalize all the searching methods

LLVM doesn't unroll the loop in `.find()` by default (clang is the same), so performance benefits a lot from explicit unrolling here. An iterator method without conditional exits (like `.fold()`) does not need this on the other hand.

One of the raw pointer extension methods is `fn post_inc(&mut self) -> Self` which is the rustic equivalent of “`ptr++`”, and it is a nice way to express the raw pointer loop (see commit 3).

Specific development notes about `search_while`: I tried both computing an end pointer "rounded" to 4, as well as the `ptrdistance >= 4` loop condition, ptrdistance was better. I tried handling the last 0-3 elements unrolled or with a while loop, the loop was better.
2017-01-17 21:52:03 +00:00
Jeffrey Seyfried
0b9e26f390 Fix fallout in rustdoc. 2017-01-17 21:06:45 +00:00
Jeffrey Seyfried
4c98e1bc59 Remove the lookahead buffer. 2017-01-17 21:06:44 +00:00
Stephen E. Baker
3d85f73def Clarify when range is removed by drain
Based on a discussion on #rust-beginners the existing note for drain is confusing. This new wording was suggested.
2017-01-17 14:39:16 -05:00