Commit Graph

60647 Commits

Author SHA1 Message Date
Alex Crichton
465a0d12b9 Rollup merge of #39179 - petrochenkov:objparen, r=eddyb
Fix regression in parsing of trait object types

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

Accepting parens in this position is a regression itself, introduced in Rust 1.6 by https://github.com/rust-lang/rust/pull/29870, so I hope to revert this in my next bounds refactoring patch (possibly with a warning,  crater run, etc).

r? @eddyb
2017-01-20 08:35:49 -08:00
Alex Crichton
f1852650d9 Rollup merge of #39168 - estebank:multiline-candidate, r=petrochenkov
Use multiline Diagnostic for candidate in other module

```
error[E0574]: expected struct, variant or union type, found enum `Result`
  --> $DIR/issue-16058.rs:19:9
   |
19 |         Result {
   |         ^^^^^^ not a struct, variant or union type
   |
   = help: possible better candidates are found in other modules, you can import them into scope:
             `use std::fmt::Result;`
             `use std::io::Result;`
             `use std:🧵:Result;`

error: aborting due to previous error
```
2017-01-20 08:35:49 -08:00
Alex Crichton
a759406dce Rollup merge of #39167 - alexcrichton:no-more-sha, r=brson
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.

cc #38531
2017-01-20 08:35:49 -08:00
Alex Crichton
d5102e48f6 Rollup merge of #39166 - glandium:master, r=brson
Update jemalloc to include various fixes for OSX 10.12
2017-01-20 08:35:49 -08:00
Alex Crichton
2fd401d38f Rollup merge of #39157 - michaelwoerister:debug-lto, r=alexcrichton
Add regression test for debuginfo + LTO

Fixes #25270, which cannot be reproduced with the current nightly version of the compiler anymore (due to various fixes to debuginfo generation in the past).

Should we run into the "possible ODR violation" again, the test added by this PR can be extend with the new case.

r? @alexcrichton
2017-01-20 08:35:49 -08:00
Alex Crichton
254380e2f3 Rollup merge of #39146 - alexcrichton:fix-osx-debug, r=michaelwoerister
travis: Fix post-failure lldb invocation

Pass an absolute path, not just the basename.
2017-01-20 08:35:48 -08:00
Alex Crichton
c6e4faa617 Rollup merge of #39143 - nikomatsakis:issue-38967, r=eddyb
check inherent impls of traits for overlap as well

Simple oversight. Fixes #38967.

r? @eddyb
2017-01-20 08:35:48 -08:00
Alex Crichton
e1129b75f8 Rollup merge of #39142 - nikomatsakis:issue-38973, r=brson
run rustdoc tests in the same sort of thread rustc runs in

Not sure yet if this is the problem in #38973 but seems like an improvement regardless.

r? @brson
2017-01-20 08:35:48 -08:00
Alex Crichton
1e1df6489c Rollup merge of #39138 - gralpli:issue-39089, r=nrc
Fix ICE when compiling fn f<T: ?for<'a> Sized>() {}

Fixes issue #39089
2017-01-20 08:35:48 -08:00
Alex Crichton
a7ac69a88e Rollup merge of #39135 - TheCycoONE:vec_drain_doc, r=alexcrichton
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-20 08:35:48 -08:00
Alex Crichton
1054171ac2 Rollup merge of #39132 - alexcrichton:static-libstdcpp, r=japaric
travis: Pass --enable-llvm-static-stdcpp

All our releases are compiled with this, so let's be sure to do so whenever
`DEPLOY` is set. This'll ensure that we don't have dynamic dependencies on
libstdc++ which LLVM depends on, but instead we link it all statically to have
more portable binaries.
2017-01-20 08:35:47 -08:00
Alex Crichton
b174920827 Rollup merge of #39120 - alexcrichton:emscripten-tests, r=brson
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-20 08:35:47 -08:00
Alex Crichton
17294d98b9 Rollup merge of #39118 - jseyfried:token_tree_based_parser, r=nrc
Refactor the parser to consume token trees

This is groundwork for efficiently parsing attribute proc macro invocations, bang macro invocations, and `TokenStream`-based attributes and fragment matchers.

This improves parsing performance by 8-15% and expansion performance by 0-5% on a sampling of the compiler's crates.

r? @nrc
2017-01-20 08:35:47 -08:00
Alex Crichton
dd5d85ea76 Rollup merge of #39114 - alexcrichton:fix-osx-image, r=brson
travis: Tweak OSX image configuration

Somewhere between https://travis-ci.org/rust-lang/rust/jobs/192352185 and
https://travis-ci.org/rust-lang/rust/jobs/192440181 it looks like our
configuration for a newer OSX image was lost as LLDB has reverted itself back to
350. This fix appeared to work for the libc crate so let's see if we can
configure it to work for the rust repo as well.
2017-01-20 08:35:47 -08:00
Alex Crichton
86605c4054 Rollup merge of #39112 - alexcrichton:i586-msvc, r=nikomatsakis
appveyor: Test/Dist i586 MSVC

This is a target that we're shipping today, so this commit adds this matrix
entry to AppVeyor. This reuses the existing i686 MSVC matrix entry as it's
currently finishing about a half hour under two hours, which should hopefully
give it enough extra time to run this test suite.

cc #38531
2017-01-20 08:35:47 -08:00
Alex Crichton
4a298dde72 Rollup merge of #39111 - alexcrichton:more-cross-targets, r=brson
travis: Expand the `cross` linux image

This expands the `cross` travis matrix entry with a few more targets that our
nightlies are building:

* x86_64-rumprun-netbsd
* arm-unknown-linux-musleabi
* arm-unknown-linux-musleabihf
* armv7-unknown-linux-musleabihf
* mips-unknown-linux-musl
* mipsel-unknown-linux-musl

This commit doesn't compile custom toolchains like our current cross-image does,
but instead compiles musl manually and then compiles libunwind manually (like
x86_64) for use for the ARM targets and just uses openwrt toolchains for the
mips targets.

cc #38531
2017-01-20 08:35:46 -08:00
Alex Crichton
bef5ff1121 Rollup merge of #39077 - jseyfried:crate_var_imports, r=nrc
Improve the warning cycle for `use $crate;`

Fixes #39049.
r? @nrc
2017-01-20 08:35:46 -08:00
Alex Crichton
0c7117457d Rollup merge of #39068 - alexcrichton:more-small-tests, r=brson
travis: Add i586 linux and i686 musl

This commit expands the existing x86_64-musl entry in the Travis matrix to also
build/test i586-unknown-linux-gnu and i686-unknown-linux-musl.

cc #38531
Closes #35599
Closes #39053
2017-01-20 08:35:46 -08:00
Alex Crichton
18a39ed66e Rollup merge of #38966 - brson:relnotes, r=brson
1.15 release notes

[Rundered](https://github.com/brson/rust/blob/relnotes/RELEASES.md#version-1150-2017-02-02).

Lots of good stuff this release!

Perf graphs: https://goo.gl/KSVFvF, https://goo.gl/K98g8M, https://goo.gl/H1gSoz, https://goo.gl/yZBV2p, https://goo.gl/ltURbb. Not much change 😿

r? @steveklabnik
2017-01-20 08:35:46 -08:00
Alex Crichton
d4d276faaf Rollup merge of #38842 - abonander:proc_macro_attribute, r=jseyfried
Implement `#[proc_macro_attribute]`

This implements `#[proc_macro_attribute]` as described in https://github.com/rust-lang/rfcs/pull/1566

The following major (hopefully non-breaking) changes are included:

* Refactor `proc_macro::TokenStream` to use `syntax::tokenstream::TokenStream`.
    * `proc_macro::tokenstream::TokenStream` no longer emits newlines between items, this can be trivially restored if desired
    * `proc_macro::TokenStream::from_str` does not try to parse an item anymore, moved to `impl MultiItemModifier for CustomDerive` with more informative error message

* Implement `#[proc_macro_attribute]`, which expects functions of the kind `fn(TokenStream, TokenStream) -> TokenStream`
    * Reactivated `#![feature(proc_macro)]` and gated `#[proc_macro_attribute]` under it
    * `#![feature(proc_macro)]` and `#![feature(custom_attribute)]` are mutually exclusive
    * adding `#![feature(proc_macro)]` makes the expansion pass assume that any attributes that are not built-in, or introduced by existing syntax extensions, are proc-macro attributes

* Fix `feature_gate::find_lang_feature_issue()` to not use `unwrap()`

    * This change wasn't necessary for this PR, but it helped debugging a problem where I was using the wrong feature string.

* Move "completed feature gate checking" pass to after "name resolution" pass

    * This was necessary for proper feature-gating of `#[proc_macro_attribute]` invocations when the `proc_macro` feature flag isn't set.

Prototype/Litmus Test: [Implementation](https://github.com/abonander/anterofit/blob/proc_macro/service-attr/src/lib.rs#L13) -- [Usage](https://github.com/abonander/anterofit/blob/proc_macro/service-attr/examples/post_service.rs#L35)
2017-01-20 08:34:30 -08:00
Alex Crichton
437d2b5e28 Rollup merge of #38761 - frewsxcv:thread-sleep-formatting, r=alexcrichton
Add 'platform-specific' section to `sleep_ms` to match `sleep`.

None
2017-01-20 08:34:30 -08:00
bors
a52da95ced Auto merge of #39062 - martinhath:placement-in-binaryheap, r=nagisa
Implement placement-in protocol for `BinaryHeap`

Related to #30172, and loosley based on #38551.

At the moment, this PR is in a pretty rough state, but I wanted to get some feedback to see if I'm going in the right direction.

I hope the Mentor label of #30172 is still applicable, even though it's a year old 😄
2017-01-20 13:31:10 +00:00
bors
b7ca2b9e14 Auto merge of #38955 - estebank:highlighted-diags, r=nikomatsakis
Teach Diagnostics to highlight text

Support styled `Diagnostic` output:

<img width="469" alt="mismatched types error with colorized types in the note" src="https://cloud.githubusercontent.com/assets/1606434/21871227/93a84198-d815-11e6-88b1-0ede3c7e28ef.png">

Closes #37532 and #38901.

r? @nikomatsakis CC @jonathandturner @nagisa @nrc
2017-01-20 09:33:10 +00:00
bors
b53d374790 Auto merge of #38603 - arielb1:supertrait-self-3, r=nikomatsakis
traits with self-containing supertraits are not object safe

This should be the last time I fix this function.

Fixes #38404.
2017-01-20 04:55:01 +00:00
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
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
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
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