Commit Graph

76670 Commits

Author SHA1 Message Date
kennytm
28b2bba585
Specialize future-incompatibility warning for UNSTABLE_NAME_COLLISION. 2018-03-24 07:00:48 +08:00
kennytm
023274483e
Changed check_stability to take an Option<NodeId> instead of NodeId.
This clarifies the intent of whether to emit deprecated lint or not.
2018-03-24 06:58:02 +08:00
kennytm
abf4d8babf
When picking a candidate, consider the unstable ones last.
If there is potential ambiguity after stabilizing those candidates, a
warning will be emitted.
2018-03-24 06:58:01 +08:00
kennytm
1731bf8049
Provide a proper span when demanding for the return type of box x. 2018-03-24 06:55:06 +08:00
Hidehito Yabuuchi
f8fc5c0523 Fix error annotations in test 2018-03-24 07:54:20 +09:00
Hidehito Yabuuchi
3bfed9e43f Better diagnostics for '..' pattern fragment not in the last position 2018-03-24 07:54:20 +09:00
Sean Griffin
dd60beae47 Fix rustdoc 2018-03-23 15:57:49 -06:00
Mark Simulacrum
700fd5acd0 Remove getopts leftover from tree
This was attempted but left incomplete in PR #42664, where only the toml
file was removed.
2018-03-23 15:02:59 -06:00
Daniel Kolsoi
fdde09c70c Reduce scope of unsafe block in sun_path_offset 2018-03-23 17:01:34 -04:00
Sean Griffin
555f718c42 Fix failures after rebase 2018-03-23 14:35:14 -06:00
Guillaume Gomez
90588a9086 Fix IE11 search 2018-03-23 21:27:15 +01:00
Sean Griffin
c6935e57f1 Revert "add universes to type inference variables"
This reverts commit 13efaf0481.
2018-03-23 13:19:24 -06:00
Sean Griffin
1171ebf6f1 Revert "introduce UniverseIndex into ParamEnv"
This reverts commit d4df52cacb.
2018-03-23 13:18:50 -06:00
Sean Griffin
26cebda208 Revert "change skolemizations to use universe index"
This reverts commit 35e78b5cdd.
2018-03-23 13:18:50 -06:00
Sean Griffin
5ecefc55c1 Revert "fix tidy error"
This reverts commit a985634fc0.
2018-03-23 13:18:50 -06:00
Sean Griffin
8128ae3d39 Revert "fix tests in librustc_driver"
This reverts commit 17df455c2e.
2018-03-23 13:18:50 -06:00
Sean Griffin
3e971ebbdb Revert "change skolemizations to use universe index"
This reverts commit 755bdaa190.
2018-03-23 13:18:50 -06:00
Simon Sapin
e993e62341 Use the same RUSTFLAGS for building and testing bootstrap
Fixes #49215
2018-03-23 19:55:41 +01:00
bors
c08480fce0 Auto merge of #49308 - alexcrichton:rollup, r=alexcrichton
Rollup of 15 pull requests

- Successful merges: #48265, #48528, #48552, #48624, #48883, #48909, #49028, #49030, #49102, #49160, #49169, #49203, #49262, #49272, #49295
- Failed merges: #48942, #49035
2018-03-23 18:38:16 +00:00
Alex Crichton
0e6cd8b61a Test fixes 2018-03-23 11:37:42 -07:00
Simon Sapin
1efe0b3481 Rename variables in rustc’s SelectionContext::copy_clone_conditions 2018-03-23 19:02:14 +01:00
David Wood
4161ae7477
Improved comments for UserAssertTy statement. 2018-03-23 17:50:33 +00:00
Alex Crichton
3ebe12eb3e Merge branch '49001_epoch' of https://github.com/klnusbaum/rust into rollup 2018-03-23 10:16:42 -07:00
Alex Crichton
82bb41bdab Merge branch 'master' of https://github.com/Lymia/rust into rollup 2018-03-23 10:16:40 -07:00
Alex Crichton
d58abe75bb Rollup merge of #49295 - csmoe:nll_test_48238, r=alexcrichton
Add test for issue-48238

Fixes #48238
test case made from comments in #48238
2018-03-23 10:16:11 -07:00
Alex Crichton
3624544a53 Rollup merge of #49272 - semarie:cat-and-grep-gnu, r=alexcrichton
Use GNU version of fgrep/egrep tool if available

It is mostly for BSD system. Some tests (run-make/issue-35164 and
run-make/cat-and-grep-sanity-check) are failing with BSD
fgrep, whereas they pass with gnu version (gfgrep).
2018-03-23 10:16:11 -07:00
Alex Crichton
6fd3cc585a Rollup merge of #49262 - oli-obk:fixed_size_array_len, r=estebank
Produce nice array lengths on a best effort basis

fixes #49208

r? @estebank
2018-03-23 10:16:10 -07:00
Alex Crichton
815171b592 Rollup merge of #49169 - sanxiyn:doc-only, r=aturon
Document only-X test header

This was added in #47487 without documentation.
2018-03-23 10:16:10 -07:00
Alex Crichton
401a93096d Rollup merge of #49160 - estebank:issue-47457-missing-fields, r=oli-obk
Reduce the diagnostic spam when multiple fields are missing in pattern

Fix #47457.
2018-03-23 10:16:10 -07:00
Alex Crichton
db2dde9a41 Rollup merge of #49102 - glandium:decimal, r=aturon
Remove core::fmt::num::Decimal

Before ebf9e1aaf6, it was used for Display::fmt, but ebf9e1aaf6 replaced
that with a faster implementation, and nothing else uses it.
2018-03-23 10:16:09 -07:00
Alex Crichton
4b31b5bda7 Rollup merge of #49030 - Zoxc:misc, r=michaelwoerister
Misc changes from my parallel rustc branch

r? @michaelwoerister
2018-03-23 10:16:09 -07:00
Alex Crichton
f74d01cf29 Rollup merge of #49028 - QuietMisdreavus:the-dark-forbidden-corners-of-rustdoc, r=frewsxcv
add an "unstable features" chapter to the rustdoc book

There are several rustdoc features that currently are undocumented, but also don't fit with the rest of the Rustdoc Book since they're also unstable. Some of these have corresponding feature gates and chapters in the Unstable Book, but many don't, and i wanted a place to talk about them officially.

Goal: talk about everything rustdoc can do that needs nightly

- [x] Feature gates (extensions to the doc attribute that can be caught by the compiler)
  - [x] doc(cfg)
  - [x] doc(masked)
  - [x] doc(spotlight)
  - [x] doc(include)
- [x] Command-line flags (features that require a CLI flag to use, where the flag itself is a `-Z` command or otherwise requires `-Z unstable-options` before rustdoc will accept it)
  - [x] markdown-before-content/markdown-after-content
  - [x] playground-url
  - [x] display-warnings
  - [x] crate-version
  - [x] linker
  - [x] sort-modules-by-appearance
  - [x] themes/theme-checker
  - [x] resource-suffix
  - [x] `-Z force-unstable-if-unmarked`
- [x] Nightly-gated functionality (features that are gated by requiring a nightly build without needing a CLI flag or a feature gate to unlock)
  - [x] intra-links
  - [x] error numbers for `compile_fail` doctests
2018-03-23 10:16:08 -07:00
Alex Crichton
7c0c7ef330 Rollup merge of #48909 - RalfJung:type_alias_bounds, r=petrochenkov
Improve lint for type alias bounds

First of all, I learned just today that I was wrong assuming that the bounds in type aliases are entirely ignored: It turns out they are used to resolve associated types in type aliases. So:
```rust
type T1<U: Bound> = U::Assoc; // compiles
type T2<U> = U::Assoc; // fails
type T3<U> = <U as Bound>::Assoc; // "correct" way to write this, maybe?
```
I am sorry for creating this mess.

This PR changes the wording of the lint accordingly. Moreover, since just removing the bound is no longer always a possible fix, I tried to detect cases like `T1` above and show a helpful message to the user:
```
warning: bounds on generic parameters are not enforced in type aliases
  --> $DIR/type-alias-bounds.rs:57:12
   |
LL | type T1<U: Bound> = U::Assoc; //~ WARN not enforced in type aliases
   |            ^^^^^
   |
   = help: the bound will not be checked when the type alias is used, and should be removed
help: use absolute paths (i.e., <T as Trait>::Assoc) to refer to associated types in type aliases
  --> $DIR/type-alias-bounds.rs:57:21
   |
LL | type T1<U: Bound> = U::Assoc; //~ WARN not enforced in type aliases
   |                     ^^^^^^^^
```
I am not sure if I got this entirely right. Ideally, we could provide a suggestion involving the correct trait and type name -- however, while I have access to the HIR in the lint, I do not know how to get access to the resolved name information, like which trait `Assoc` belongs to above. The lint does not even run if that resolution fails, so I assume that information is available *somewhere*...

This is a follow-up for (parts of) https://github.com/rust-lang/rust/pull/48326. Also see https://github.com/rust-lang/rust/issues/21903.

This changes the name of a lint, but that lint was just merged to master yesterday and has never even been on beta.
2018-03-23 10:16:08 -07:00
Alex Crichton
f836ae48e6 Rollup merge of #48883 - alexcrichton:wasm-custom-sections, r=nikomatsakis
rustc: Add a `#[wasm_custom_section]` attribute

This commit is an implementation of adding custom sections to wasm artifacts in
rustc. The intention here is to expose the ability of the wasm binary format to
contain custom sections with arbitrary user-defined data. Currently neither our
version of LLVM nor LLD supports this so the implementation is currently custom
to rustc itself.

The implementation here is to attach a `#[wasm_custom_section = "foo"]`
attribute to any `const` which has a type like `[u8; N]`. Other types of
constants aren't supported yet but may be added one day! This should hopefully
be enough to get off the ground with *some* custom section support.

The current semantics are that any constant tagged with `#[wasm_custom_section]`
section will be *appended* to the corresponding section in the final output wasm
artifact (and this affects dependencies linked in as well, not just the final
crate). This means that whatever is interpreting the contents must be able to
interpret binary-concatenated sections (or each constant needs to be in its own
custom section).

To test this change the existing `run-make` test suite was moved to a
`run-make-fulldeps` folder and a new `run-make` test suite was added which
applies to all targets by default. This test suite currently only has one test
which only runs for the wasm target (using a node.js script to use `WebAssembly`
in JS to parse the wasm output).
2018-03-23 10:16:07 -07:00
Alex Crichton
16eeb10bee Rollup merge of #48624 - bdrewery:freebsd-posix-spawn, r=alexcrichton
Command: Support posix_spawn() on FreeBSD/OSX/GNU Linux
2018-03-23 10:16:07 -07:00
memoryleak47
da1febff1e the expected ui output is now the empty String if the corresponding files are missing 2018-03-23 15:31:05 +01:00
Alex Crichton
7cf4cb5a7b
Rollup merge of #48265 - SimonSapin:nonzero, r=KodrAus
Add 12 num::NonZero* types for primitive integers, deprecate core::nonzero

RFC: https://github.com/rust-lang/rfcs/pull/2307
Tracking issue: ~~https://github.com/rust-lang/rust/issues/27730~~ https://github.com/rust-lang/rust/issues/49137
Fixes https://github.com/rust-lang/rust/issues/27730
2018-03-23 09:27:06 -05:00
Simon Sapin
00721de714 Mention closures in docs for Clone and Copy 2018-03-23 15:12:10 +01:00
David Wood
3a0162b7cb
Fixed issues with incremental tests. 2018-03-23 14:04:08 +00:00
Oliver Schneider
f9019aee5b
Simplify local accessors 2018-03-23 12:44:33 +01:00
David Wood
03481f19ea
Updated MIR with UserAssertTy in mir-opt tests. 2018-03-23 11:34:06 +00:00
Simon Sapin
ee67e14034 Stabilize the copy_closures and clone_closures features
In addition to the `Fn*` family of traits, closures now implement `Copy` (and similarly `Clone`) if all of the captures do.
2018-03-23 11:37:07 +01:00
csmoe
ced7687c06 add test for issue-48238 2018-03-23 18:01:05 +08:00
Oliver Schneider
4ea4dd23cd
Don't allocate a local array at all if there are no locals 2018-03-23 10:47:55 +01:00
Oliver Schneider
b18b776b8f
Replace uses of Hash(Map|Set) with FxHash(Map|Set) in miri 2018-03-23 10:32:27 +01:00
Scott McMurray
68e0ea9d47 Introduce unsafe offset_from on pointers
Adds intrinsics::exact_div to take advantage of the unsafe, which reduces the implementation from
```asm
    sub rcx, rdx
    mov rax, rcx
    sar rax, 63
    shr rax, 62
    lea rax, [rax + rcx]
    sar rax, 2
    ret
```
down to
```asm
    sub rcx, rdx
    sar rcx, 2
    mov rax, rcx
    ret
```
(for `*const i32`)
2018-03-23 01:30:23 -07:00
Oliver Schneider
bf8e4f231a
Vec<_> -> IndexVec<Local, _> 2018-03-23 08:31:13 +01:00
bors
55e1104dd9 Auto merge of #49285 - nrc:update, r=alexcrichton
Update RLS and Rustfmt

Fixes broken RLS tests/build

r? @alexcrichton
2018-03-23 05:43:00 +00:00
memoryleak47
bb7ab5c85d some tidy fixes 2018-03-23 06:10:03 +01:00
memoryleak47
4023f054b1 compiletest ui does not check for //~ comments, when --compare-mode is active 2018-03-23 03:56:44 +01:00