Commit graph

73218 commits

Author SHA1 Message Date
kennytm
9dd7caef04
Rollup merge of #47270 - Zoxc:gen-layout-fix, r=eddyb
Don't look for niches inside generator types. Fixes #47253

r? @eddyb
2018-01-09 03:37:21 +08:00
kennytm
de4e1a9773
Rollup merge of #47263 - ollie27:rustdoc_private_macro_import, r=GuillaumeGomez
rustdoc: Don't import macros from private imports

Fixes #47038
2018-01-09 03:37:19 +08:00
kennytm
5ffaf4c291
Rollup merge of #47259 - sfackler:map-remove-entry, r=dtolnay
Add HashMap::remove_entry

Implements #46344

r? @dtolnay
2018-01-09 03:37:18 +08:00
kennytm
6648dcd353
Rollup merge of #47258 - rkruppe:struct-assert, r=eddyb
rustc::ty: Rename struct_variant to non_enum_variant

r? @eddyb
2018-01-09 03:37:16 +08:00
kennytm
d72a509ea0
Rollup merge of #47256 - rkruppe:misc-cleanup, r=eddyb
Rename ReprExtern to ReprC

… and similarily rename a few other field and locals that mentioned "extern repr".
2018-01-09 03:37:14 +08:00
kennytm
4c0823a670
Rollup merge of #47254 - rkruppe:no-more-align-hack, r=alexcrichton
Replace empty array hack with repr(align)

As a side effect, this fixes the warning about repr(C, simd) that has been reported during x86_64 windows builds since #47111 (see also: #47103)

r? @alexcrichton
2018-01-09 03:37:12 +08:00
kennytm
9214e9b0ae Rollup merge of #47246 - aidanhs:aphs-wasm-backtrace-feature, r=KodrAus
Make wasm obey backtrace feature, like other targets

E.g. 6828cf9014/src/libstd/sys/unix/mod.rs (L40-L41)
2018-01-09 01:58:47 +08:00
kennytm
1cbbbc0944 Rollup merge of #47233 - dotdash:cleanup_llvm, r=alexcrichton
Remove unused LLVM related code

Ticks a few more boxes on #46437
2018-01-09 01:58:46 +08:00
kennytm
4a6f440920 Rollup merge of #47210 - zackmdavis:the_3rd_of_2_hardest_problems_in_computer_science, r=QuietMisdreavus
fix the doc-comment-decoration-trimming edge-case rustdoc ICE

This `horizontal_trim` function strips the leading whitespace from
doc-comments that have a left-asterisk-margin:

```
  /**
   * You know what I mean—
   *
   * comments like this!
   */
```

The index of the column of asterisks is `i`, and if trimming is deemed
possible, we slice each line from `i+1` to the end of the line. But if, in
particular, `i` was 0 _and_ there was an empty line (as in the example
given in the reporting issue), we ended up panicking trying to slice an
empty string from 0+1 (== 1).

Let's tighten our check to say that we can't trim when `i` is even the same
as the length of the line, not just when it's greater. (Any such cases
would panic trying to slice `line` from `line.len()+1`.)

Resolves #47197.
2018-01-09 01:58:45 +08:00
bors
b5392f5450 Auto merge of #47208 - Manishearth:double-ended-searcher, r=pnkfelix
Make double ended searchers use dependent fingers

(fixes #47175)

r? @burntsushi @alexcrichton

needs uplift to beta
2018-01-08 14:32:25 +00:00
John Kåre Alsaker
1a7b00d5fd Don't look for niches inside generator types. Fixes #47253 2018-01-08 13:19:27 +01:00
bors
1b193de98a Auto merge of #47232 - keatinge:master, r=petrochenkov
Add help message for incorrect pattern syntax

When I was getting started with rust I often made the mistake of using `||` instead of `|` to match multiple patterns and spent a long time staring at my code wondering what was wrong.

for example:

```
fn main() {
    let x = 1;

    match x {
        1 || 2 => println!("1 or 2"),
        _ => println!("Something else"),
    }
}

```

If you compile this with current rustc you will see

```
error: expected one of `...`, `..=`, `..`, `=>`, `if`, or `|`, found `||`
 --> test.rs:5:11
  |
5 |         1 || 2 => println!("1 or 2"),
  |          -^^ unexpected token
  |          |
  |          expected one of `...`, `..=`, `..`, `=>`, `if`, or `|` here

error: aborting due to previous error
```

With my proposed change it will show:
```
error: unexpected token `||` after pattern
 --> test.rs:5:11
  |
5 |         1 || 2 => println!("1 or 2"),
  |           ^^
  |
  = help: did you mean to use `|` to specify multiple patterns instead?

error: aborting due to previous error
```
2018-01-08 07:11:47 +00:00
bors
795594cd8c Auto merge of #47200 - BurntPizza:query-snatp, r=nikomatsakis
Make normalize_and_test_predicates into a query

From #44891.

I'm not real solid on how `dep_graph` stuff works, but if a node is going to have a key (again, not sure how important that is), then the key needs to be `Copy`. So since `normalize_and_test_predicates` only had one out-of-module use, I changed that call site to use a new function, `substitute_normalize_and_test_predicates` which is the query and enables having the arguments be `Copy`. Hopefully this makes sense.

r? @nikomatsakis
and/or @michaelwoerister
2018-01-08 04:31:18 +00:00
Oliver Middleton
8302044a52 rustdoc: Don't import macros from private imports 2018-01-08 03:39:25 +00:00
Robin Kruppe
cf3fefe97f rustc::ty: Rename struct_variant to non_enum_variant
It is also intended for use with unions.
2018-01-08 00:28:05 +01:00
bors
a29461f322 Auto merge of #47171 - estebank:numeric-literal-suggestion, r=nikomatsakis
Provide suggestion when trying to use method on numeric literal

New output:

```
error[E0688]: can't call method `powi` on ambiguous numeric type `{float}`
  --> $DIR/method-on-ambiguous-numeric-type.rs:12:17
   |
12 |     let x = 2.0.powi(2);
   |                 ^^^^
help: you must specify a concrete type for this numeric value, like `f32`
   |
12 |     let x = 2.0_f32.powi(2);
   |             ^^^^^^^
```

Previous output:

```
error[E0599]: no method named `powi` found for type `{float}` in the current scope
  --> src/main.rs:12:17
   |
12 |     let x = 2.0.powi(2);
   |                 ^^^^
   |
   = help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope, perhaps add a `use` for it:
   |
11 | use core::num::Float;
   |
```

Fix #40985.
2018-01-07 22:48:16 +00:00
Steven Fackler
1fc6ad56cd Add HashMap::remove_entry
Implements #46344
2018-01-07 14:17:37 -08:00
Robin Kruppe
1df384d32d Rename ReprExtern to ReprC, and similarily rename a few other fields and locals that mentioned "extern repr" 2018-01-07 22:05:32 +01:00
Robin Kruppe
9e4a692e56 Replace empty array hack with repr(align)
As a side effect, this fixes the warning about repr(C, simd) that has been reported during x86_64 windows builds since #47111 (see also: #47103)
2018-01-07 20:25:37 +01:00
bors
ee220daca3 Auto merge of #47161 - MaloJaffre:compiler-docs-regression, r=alexcrichton
Try to fix a perf regression by updating log

Upgrade `log` to `0.4` in multiple crates ~and `cargo`~.
Cc: #47154.
2018-01-07 18:50:30 +00:00
Malo Jaffré
3f073c409a Try to fix a perf regression by updating log
Upgrade `log` to `0.4` in multiple crates.
2018-01-07 16:54:05 +01:00
bors
8724337c23 Auto merge of #47039 - ollie27:rustdoc_trait_impl_src, r=GuillaumeGomez
rustdoc: Add missing src links for generic impls on trait pages

`implementor2item` would return `None` for generic impls so instead this clones the entire `clean::Item` into the `implementors` map which simplifies some code.
2018-01-07 13:12:15 +00:00
bors
69f17d1a0a Auto merge of #47177 - michaelwoerister:erase-invalid-spans-during-metadata-encoding, r=alexcrichton
Map invalid Spans to DUMMY_SP during crate metadata encoding.

This mirrors what we do for stabilizing the incr. comp. cache and is necessary for reproducible builds. For the incr. comp. cache, we *have* to do this because the encoding there cannot represent broken Spans. Metadata encoding has to be in sync with that as not to get unexpected interactions when compiling incrementally.

This should help with fixing issue https://github.com/rust-lang/rust/issues/47066.

r? @alexcrichton
2018-01-07 09:23:33 +00:00
bors
2148bcd5fa Auto merge of #47157 - malbarbo:shared-build-musl, r=alexcrichton
ci: use a shared script to build musl

The dist-x86_64-musl, dist-various-1 and dist-i586-gnu-i686-musl builders had different scripts to build musl. This PR creates an unified script, which makes it easier to add new musl targets and update musl and libunwind (used in the musl targets).

The libunwind is update from 3.7 to 3.9 for dist-x86_64-musl and dist-i586-gnu-i686-musl (dist-various-1 already used 3.9 version).
2018-01-07 03:41:00 +00:00
Björn Steinbrink
907855fe88 Remove unused LLVMRustJITMemoryManagerRef typedef 2018-01-07 04:39:58 +01:00
Björn Steinbrink
ebc85077df Remove dead function rustc_llvm::debug_loc_to_string()
Refs #46437 as it also removes LLVMRustWriteDebugLocToString()
2018-01-07 04:39:58 +01:00
Björn Steinbrink
4be1d5c37b Remove dead function LLVMRustLinkInParsedExternalBitcode()
Refs #46437
2018-01-07 04:39:58 +01:00
Björn Steinbrink
92189bc521 Remove redundant -Zdebug-llvm option
The same effect can be achieved using -Cllvm-args=-debug

Refs #46437 as it removes LLVMRustSetDebug()
2018-01-07 04:39:58 +01:00
Aidan Hobson Sayers
fd37526fa5 Make wasm obey backtrace feature, like other targets 2018-01-07 02:54:02 +00:00
bors
a704583d43 Auto merge of #47156 - petrochenkov:extpath, r=nikomatsakis
Support `extern` in paths

Implement the primary alternative to https://github.com/rust-lang/rust/pull/46613 + https://github.com/rust-lang/rust/pull/45771, achieving the same effect without requiring changes to other imports.
Both need to be experimentally evaluated before making further progress.

The PR also adds docs for all these related features into the unstable book.

cc https://github.com/rust-lang/rust/issues/44660
r? @nikomatsakis
2018-01-07 00:51:42 +00:00
bors
6828cf9014 Auto merge of #47235 - kennytm:rollup, r=kennytm
Rollup of 7 pull requests

- Successful merges: #46947, #47170, #47190, #47205, #47217, #47220, #47230
- Failed merges: #47233
2018-01-06 20:41:33 +00:00
keatinge
6aafdc3781 Fix tidy error 2018-01-06 15:29:08 -05:00
keatinge
a9b746bb23 Use span_suggestion instead of span_err_help 2018-01-06 15:22:29 -05:00
Zack M. Davis
3cfea33432 wherein careful doc-decoration arithmetic proves quite the ICE-breaker
This `horizontal_trim` function strips the leading whitespace from
doc-comments that have a left-asterisk-margin:

  /**
   * You know what I mean—
   *
   * comments like this!
   */

The index of the column of asterisks is `i`, and if trimming is deemed
possible, we slice each line from `i+1` to the end of the line. But if, in
particular, `i` was 0 _and_ there was an empty line (as in the example
given in the reporting issue), we ended up panicking trying to slice an
empty string from 0+1 (== 1).

Let's tighten our check to say that we can't trim when `i` is even the same
as the length of the line, not just when it's greater. (Any such cases
would panic trying to slice `line` from `line.len()+1`.)

Resolves #47197.
2018-01-06 11:17:29 -08:00
kennytm
ce70106138 Rollup merge of #47230 - nerd2:debuginfo_shadow, r=alexcrichton
Debuginfo Shadowed Variable test: fix check numbering

Appears to be a simple fix to restore this test. Ref issue #47163, CC @arielb1
2018-01-07 02:36:07 +08:00
kennytm
f6125846b6 Rollup merge of #47220 - nagisa:nonamellvm, r=rkruppe
Use name-discarding LLVM context

This is only applicable when neither of --emit=llvm-ir or --emit=llvm-bc are not
requested.

In case either of these outputs are wanted, but the benefits of such context are
desired as well, -Zfewer_names option provides the same functionality regardless
of the outputs requested.

Should be a viable fix for https://github.com/rust-lang/rust/issues/46449
2018-01-07 02:36:06 +08:00
kennytm
e7192c1a4b Rollup merge of #47217 - stjepang:set-examples, r=frewsxcv
Write examples for {BTree,Hash}Set::{get,replace,take}
2018-01-07 02:36:05 +08:00
kennytm
c6bf11cf2b Rollup merge of #47205 - eddyb:alloc-id, r=oli-obk
miri: use AllocId instead of u64.

This makes @alexreg's miri allocation -> LLVM global translation more straight-forward.

r? @oli-obk
2018-01-07 02:36:04 +08:00
kennytm
48a0f3a5ca Rollup merge of #47190 - EdSchouten:cloudabi-libpanic, r=alexcrichton
Port libpanic_abort and libpanic_unwind to CloudABI

This change ports both the libpanic* libraries to CloudABI.

The most interesting part of this pull request, however, is that it imports the CloudABI system call API into the Rust tree through a Git submodule. These will also be used by my port of libstd to CloudABI extensively, as that library obviously needs to invoke system calls to implement its primitives.

I have taken the same approach as libc: `src/libcloudabi` + `src/rustc/cloudabi_shim`. If some other naming scheme is preferred, feel free to let me know! As `libcloudabi` is pretty small, maybe it makes sense to copy, instead of using a submodule?
2018-01-07 02:36:03 +08:00
kennytm
b63f89783d Rollup merge of #47170 - eddyb:us-vs-usize, r=nikomatsakis
rustc: use {U,I}size instead of {U,I}s shorthands.

`Us`/`Is` come from a time when `us` and `is` were the literal suffixes that are now `usize` / `isize`.

r? @nikomatsakis
2018-01-07 02:36:02 +08:00
kennytm
d9d5c667d8 Rollup merge of #46947 - tspiteri:checked-div-rem-none, r=frewsxcv
doc: improve None condition doc for `checked_div` and `checked_rem`

This commit improves the condition mentioned in the docs for which `checked_div` and `checked_rem` return `None`.

For signed division, the commit changes "the operation results in overflow" to "the division results in overflow", otherwise there is room for misinterpretation for `checked_rem`: Without considering overflow, `MIN % -1` would be simply zero, allowing the misinterpretation that "the operation" does not result in overflow in this case. This ambiguity is removed using "when the division results in overflow".

For unsigned division, the condition for `None` should be simply when `rhs == 0`, as no other overflow is possible.
2018-01-07 02:36:01 +08:00
keatinge
8260209bb2 Add tests for error message for pattern matching typo 2018-01-06 12:34:19 -05:00
keatinge
4436bca5af fix style 2018-01-06 10:05:02 -05:00
keatinge
dcb53d754b Emit non-fatal error instead 2018-01-06 10:01:54 -05:00
bors
72176cf96c Auto merge of #47141 - alexcrichton:bump-bootstrap, r=alexcrichton
Bump to 1.25.0

* Bump the release version to 1.25
* Bump the bootstrap compiler to the recent beta
* Allow using unstable rustdoc features on beta - this fix has been applied to
  the beta branch but needed to go to the master branch as well.
2018-01-06 14:50:14 +00:00
keatinge
13576dfcd4 fix capitalization 2018-01-06 08:37:01 -05:00
keatinge
41f58a7cf6 Add help message for incorrect pattern syntax 2018-01-06 07:47:51 -05:00
bors
a9a03d9bfb Auto merge of #47099 - SergioBenitez:master, r=jseyfried
Add 'Span::parent()' and 'Span::source()' to proc_macro API.

As the title suggests: a couple of useful methods for `proc_macro`.
2018-01-06 12:02:36 +00:00
Sam
7c971b2ab1 Debuginfo Shadowed Variable test: fix check numbering 2018-01-06 11:10:17 +00:00
bors
90e019bacd Auto merge of #47083 - CAD97:issue-46976, r=nikomatsakis
Issue 46976

ICE is due to an empty path segments, so I set the path to be the same as the in band ty params symbol. (I think this is how regular generics end up being handled?)

Pinging @cramertj, this is your code I'm editing here.
2018-01-06 09:22:16 +00:00