Commit graph

90961 commits

Author SHA1 Message Date
bors
cd45b19bd2 Auto merge of #58872 - rep-nop:diagnostic-fix-56031, r=petrochenkov
Adds help message in error for invalid `impl for T` syntax

Fixes #56031.
2019-03-18 08:03:05 +00:00
bors
03dafa7da3 Auto merge of #58824 - euclio:intra-link-ambiguity, r=petrochenkov
overhaul intra-doc-link ambiguity warning

Fixes #52784.

- Makes the warning part of the `intra_doc_link_resolution_failure`
lint.
- Tightens the span to just the ambiguous link.
- Reports ambiguities across all three namespaces.
- Uses structured suggestions for disambiguation.
- Adds a test for the warnings.

r? @QuietMisdreavus
2019-03-18 02:56:35 +00:00
bors
817d074e54 Auto merge of #59250 - bovinebuddha:filter_ui_revision_tests, r=petrochenkov
Filter ui revision tests

Updates UI test output filtering to also filter away test annotations for revisions:

Previously filtered: //~ ERROR [XXXX]
Now also filters: //[revision]~ ERROR [XXXX]

I reckon, if we have the one, we should have the other for consistency, its lack was probably an oversight (the existence of revision testing is not really well documented...)
2019-03-17 23:51:18 +00:00
bors
c82834e2b9 Auto merge of #58994 - oli-obk:deprecated_derive, r=petrochenkov
Hide deprecation warnings inside derive expansions

Fixes #58822
2019-03-17 20:49:55 +00:00
bors
f649c76e98 Auto merge of #59047 - petrochenkov:modnodefid, r=Centril
resolve: Account for new importable entities

Fixes the ICE encountered in https://github.com/rust-lang/rust/pull/58837
r? @Centril
2019-03-17 17:25:10 +00:00
Mathias Blikstad
704649d96d Removed obsolete .stderr test outputs 2019-03-17 17:01:59 +01:00
Mathias Blikstad
faed3a2b19 Updated UI test output to remove test annotations for revisions 2019-03-17 17:00:18 +01:00
bors
070cebd0aa Auto merge of #59178 - oli-obk:lazy_const, r=eddyb
Revert the `LazyConst` PR

The introduction of `LazyConst` did not actually achieve the code simplicity improvements that were the main reason it was introduced. Especially in the presence of const generics, the differences between the "levels of evaluatedness" of a constant become less clear. As it can be seen by the changes in this PR, further simplifications were possible by folding `LazyConst` back into `ConstValue`. We have been able to keep all the advantages gained during the `LazyConst` refactoring (like `const_eval` not returning an interned value, thus making all the `match` code simpler and more performant).

fixes https://github.com/rust-lang/rust/issues/59209

r? @eddyb @varkor
2019-03-17 11:17:03 +00:00
Mathias Blikstad
9eb2de4b75 compiletest: Filter test annotations from UI test output for revision tests 2019-03-17 10:53:31 +01:00
Oliver Scherer
a69e12c21b Don't report deprecation lints in derive expansions 2019-03-16 22:33:15 +01:00
bors
7cf074a1e6 Auto merge of #58899 - petrochenkov:derval2, r=estebank
Do not accidentally treat multi-segment meta-items as single-segment

Fixes https://github.com/rust-lang/rust/issues/55168 and many other regressions from https://github.com/rust-lang/rust/pull/50030

Basically, attributes like `#[any::prefix::foo]` were commonly interpreted as `#[foo]` due to `name()` successfully returning the last segment (this applies to nested things as well `#[attr(any::prefix::foo)]`).
2019-03-16 20:48:40 +00:00
Vadim Petrochenkov
2fd4cbb3f2 Fix rebase 2019-03-16 23:14:42 +03:00
Vadim Petrochenkov
0cf96131f4 Refactor away NestedMetaItemKind
Remove methods `Attribute::span` and `MetaItem::span` duplicating public fields
2019-03-16 23:14:42 +03:00
Vadim Petrochenkov
63116d313d Rename MetaItem::ident to MetaItem::path 2019-03-16 23:13:15 +03:00
Vadim Petrochenkov
6ad55b3dec syntax: Introduce Ident::can_be_raw 2019-03-16 23:13:15 +03:00
Vadim Petrochenkov
5cb5083909 syntax_ext: Validate #[proc_macro_derive] input better
Tweak some error wording
2019-03-16 23:13:15 +03:00
Vadim Petrochenkov
8371caf5ee syntax: Do not accidentally treat multi-segment meta-items as single-segment 2019-03-16 23:13:15 +03:00
Vadim Petrochenkov
e2009ea5ff Add tests for malformed input in #[proc_macro_derive] 2019-03-16 23:13:15 +03:00
Oliver Scherer
5cd2806621 Revert the LazyConst PR 2019-03-16 21:04:10 +01:00
bors
2c8bbf50db Auto merge of #59226 - kennytm:rollup, r=kennytm
Rollup of 37 pull requests

Successful merges:

 - #58854 (appveyor: Use VS2017 for all our images)
 - #58855 (std: Spin for a global malloc lock on wasm32)
 - #58873 (Fix "Auto-hide item methods documentation" setting)
 - #58901 (Change `std::fs::copy` to use `copyfile` on MacOS and iOS)
 - #58933 (Move alloc::prelude::* to alloc::prelude::v1, make alloc a subset of std)
 - #58938 (core: ensure VaList passes improper_ctypes lint)
 - #58941 (MIPS: add r6 support)
 - #58949 (SGX target: Expose thread id function in os module)
 - #58959 (Add release notes for PR #56243)
 - #58976 (Default to integrated `rust-lld` linker for UEFI targets)
 - #59009 (Fix SGX implementations of read/write_vectored.)
 - #59025 (Fix generic argument lookup for Self)
 - #59036 (Fix ICE in MIR pretty printing)
 - #59037 (Avoid some common false positives in intra doc link checking)
 - #59072 (we can now skip should_panic tests with the libtest harness)
 - #59079 (add suggestions to invalid macro item error)
 - #59082 (A few improvements to comments in user-facing crates)
 - #59102 (Consistent naming for duration_float methods and additional f32 methods)
 - #59118 (rustc: fix ICE when trait alias has bare Self)
 - #59139 (Unregress using scalar unions in constants.)
 - #59146 (Suggest return lifetime when there's only one named lifetime)
 - #59147 (Make std time tests more robust for platform differences)
 - #59152 (Stabilize Range*::contains.)
 - #59156 ([wg-async-await] Add regression test for #55809.)
 - #59158 (Revert "Don't generate minification variable if minification disabled")
 - #59169 (Add `-Z allow_features=...` flag)
 - #59173 (bootstrap: Default to a sensible llvm-suffix.)
 - #59175 (Don't run test launching `echo` since that doesn't exist on Windows)
 - #59180 (Use try blocks in rustc_codegen_ssa)
 - #59185 (No old chestnuts in iter::repeat docs)
 - #59201 (Remove restriction on isize/usize in repr(simd))
 - #59204 (Output diagnostic information for rustdoc)
 - #59206 (Improved test output)
 - #59208 (Reduce a Code Repetition Related to Bit Operation)
 - #59212 (Add x86_64 musl host to the manifest)
 - #59221 (Option and Result: Add references to documentation of as_ref and as_mut)
 - #59231 (Stabilize Option::copied)
2019-03-16 14:46:43 +00:00
kennytm
7c009a4df7
Rollup merge of #59231 - matklad:copied, r=Centril
Stabilize Option::copied

closes https://github.com/rust-lang/rust/issues/57126
2019-03-16 22:42:00 +08:00
kennytm
40d277e3b7
Rollup merge of #58959 - asomers:issue_58907, r=Mark-Simulacrum
Add release notes for PR #56243

Fixes #58907
2019-03-16 22:41:27 +08:00
kennytm
7f81a299bc
Rollup merge of #59221 - czipperz:as_ref_documentation, r=Centril
Option and Result: Add references to documentation of as_ref and as_mut

This makes the documentation more consistent with that of `Pin::as_ref` which converts "from `&Pin<Pointer<T>>` to `Pin<&t>`".

This generally makes it clearer that the reference is going inside the option.
2019-03-16 22:41:05 +08:00
kennytm
f3360435c3
Rollup merge of #59212 - mati865:musl_toolchain, r=alexcrichton
Add x86_64 musl host to the manifest

@alexcrichton r?

Probably too late for https://github.com/rust-lang/rust/pull/59207
2019-03-16 22:41:03 +08:00
kennytm
6779b7f30e
Rollup merge of #59208 - kenta7777:reduce-code-repetition, r=oli-obk
Reduce a Code Repetition Related to Bit Operation

This PR is related to [#49937](https://github.com/rust-lang/rust/issues/49937).
Should I do more commits about [`FIXME(49937)`](https://github.com/rust-lang/rust/search?q=FIXME%2849937%29&unscoped_q=FIXME%2849937%29) in this PR?
2019-03-16 22:41:00 +08:00
kennytm
6d4b7fa0cf
Rollup merge of #59206 - sntdevco:master, r=dtolnay
Improved test output
2019-03-16 22:40:57 +08:00
kennytm
2e1104fd93
Rollup merge of #59204 - o01eg:diag-rustdoc, r=alexcrichton
Output diagnostic information for rustdoc

Use the information same as rustc.
2019-03-16 22:40:54 +08:00
kennytm
524a7afcf2
Rollup merge of #59201 - lambda:remove-repr-simd-isize-usize-restriction, r=alexcrichton
Remove restriction on isize/usize in repr(simd)

As discussed in #55078, there's no known reason for this restriction.

It's unlikely that repr(simd) will be stabilized in its current form, but
might as well remove some restrictions on it.

This removes the branch in `is_machine` which returns false for these types.
`is_machine` is only used for the repr(simd) type validation check.
2019-03-16 22:40:49 +08:00
kennytm
0b2c3484f9
Rollup merge of #59185 - lukaslueg:patch-2, r=cramertj
No old chestnuts in iter::repeat docs

The current language may be amusing, yet is just imprecise and most especially difficult to understand for someone who speaks English as a foreign language.
2019-03-16 22:40:46 +08:00
kennytm
10fe829b60
Rollup merge of #59180 - taiki-e:try_blocks, r=scottmcm
Use try blocks in rustc_codegen_ssa

r? @scottmcm
2019-03-16 22:40:43 +08:00
kennytm
08959313be
Rollup merge of #59175 - Zoxc:fix-process-test, r=alexcrichton
Don't run test launching `echo` since that doesn't exist on Windows
2019-03-16 22:40:39 +08:00
kennytm
6ffcf97be5
Rollup merge of #59173 - emilio:llvm-suffix, r=Mark-Simulacrum
bootstrap: Default to a sensible llvm-suffix.

I used version-channel-sha, hopefully that should work.

I checked that bootstrap builds, but I cannot check anything else since the llvm
build process is started from cargo, and thus calls clang, and thus I hit the
same bug I hope to fix with this change.

Hopefully fixes #59034.
2019-03-16 22:40:36 +08:00
kennytm
8601c79aff
Rollup merge of #59169 - tmandry:allow-features-flag, r=cramertj
Add `-Z allow_features=...` flag

Adds a compiler option to allow only whitelisted features.

For projects on nightly that want to prevent feature-creep (and maybe, someday, move off of nightly). Not being able to enforce this has been a problem on Fuchsia and at other big companies.

This doesn't support filtering edition feature flags, but someone is welcome to add that if they need it.
2019-03-16 22:40:33 +08:00
kennytm
25e4366b4c
Rollup merge of #59158 - Manishearth:fix-minification, r=GuillaumeGomez
Revert "Don't generate minification variable if minification disabled"

Reverts #58643

Fixes #59157

https://github.com/rust-lang/rust/pull/58643 made us stop generating minification variables when minification is disabled, however they may still be needed for parent crates that were generated with minification (this will always be the case for libstd and libcore)

r? @QuietMisdreavus @GuillaumeGomez
2019-03-16 22:40:30 +08:00
kennytm
ce9efb1822
Rollup merge of #59156 - davidtwco:issue-55809, r=nikomatsakis
[wg-async-await] Add regression test for #55809.

Fixes #55809.

This PR adds a regression test for #55809 which checks that a
overflow does not occur when evaluating a requirement for async
functions and `&mut` arguments in some specific circumstances.
2019-03-16 22:40:26 +08:00
kennytm
6241fb55ba
Rollup merge of #59152 - smmalis37:range_contains, r=SimonSapin
Stabilize Range*::contains.

Closes https://github.com/rust-lang/rust/issues/32311. There's also a bit of rustfmt on range.rs thrown in for good measure (I forgot to turn off format-on-save in VSCode).
2019-03-16 22:40:23 +08:00
kennytm
d84e063506
Rollup merge of #59147 - jethrogb:jb/time-tests, r=sfackler
Make std time tests more robust for platform differences

Previously, `time::tests::since_epoch` and `time::tests::system_time_math` would fail if the platform represents a SystemTime as unix epoch + `u64` nanoseconds.

r? @sfackler
2019-03-16 22:40:19 +08:00
kennytm
bbe5f3d08b
Rollup merge of #59146 - estebank:suggest-return-lt, r=varkor
Suggest return lifetime when there's only one named lifetime

Fix #29094.
2019-03-16 22:40:15 +08:00
kennytm
3bf4398ed2
Rollup merge of #59139 - oli-obk:unions_are_a_good_thing, r=RalfJung
Unregress using scalar unions in constants.

fixes https://github.com/rust-lang/rust/issues/59126

r? @RalfJung

I also made a bunch of these invariants panic instead of report an error.
2019-03-16 22:40:10 +08:00
kennytm
464478fbbb
Rollup merge of #59118 - seanmonstar:alias-where-self-ice, r=alexreg
rustc: fix ICE when trait alias has bare Self

Fixes https://github.com/rust-lang/rust/issues/59029
2019-03-16 22:40:07 +08:00
kennytm
c6569ecb76
Rollup merge of #59102 - newpavlov:duration_float, r=alexcrichton
Consistent naming for duration_float methods and additional f32 methods

`duration_float` tracking issue: #54361

New list of methods:
- `as_secs_f64(&self) -> f64`
- `as_secs_f32(&self) -> f32`
- `from_secs_f64(secs: f64) -> Duration`
- `from_secs_f32(secs: f32) -> Duration`
- `mul_f64(self, rhs: f64) -> Duration`
- `mul_f32(self, rhs: f32) -> Duration`
- `div_f64(self, rhs: f64) -> Duration`
- `div_f32(self, rhs: f64) -> Duration`
- `div_duration_f64(self, rhs: Duration) -> f64`
- `div_duration_f32(self, rhs: Duration) -> f32`

With [`num_traits::Float`](https://docs.rs/num-traits/0.2.6/num_traits/float/trait.Float.html) we could've reduced number of methods by factor of two, but unfortunately it's not part of `std`.
2019-03-16 22:40:02 +08:00
kennytm
d1744728a0
Rollup merge of #59082 - alexreg:cosmetic-2-doc-comments, r=Centril
A few improvements to comments in user-facing crates

Not too many this time, and all concern comments (almost all doc comments) in user-facing crates (libstd, libcore, liballoc).

r? @steveklabnik
2019-03-16 22:39:56 +08:00
kennytm
6fbd55385d
Rollup merge of #59079 - euclio:macro-semi, r=estebank
add suggestions to invalid macro item error

r? @estebank
2019-03-16 22:39:49 +08:00
kennytm
0e57b7230d
Rollup merge of #59072 - RalfJung:miri-alloc-tests, r=kennytm
we can now skip should_panic tests with the libtest harness
2019-03-16 22:39:44 +08:00
kennytm
76749844da
Rollup merge of #59037 - Manishearth:intra-doc-false, r=QuietMisdreavus
Avoid some common false positives in intra doc link checking

The empty string case is never going to be a link. The numeric case may be a link, but if it were it would have resolved locally. It's more likely the makeshift markdown footnote notation (`[0]`, etc)

r? @QuietMisdreavus
2019-03-16 22:39:39 +08:00
kennytm
db93c9b179
Rollup merge of #59036 - dlrobertson:fix_59021, r=estebank
Fix ICE in MIR pretty printing

A `Def::Variant` should be considered as a function in mir pretty
printing. Each variant has a constructor that we must print.

Given the following enum definition:

```rust
pub enum TestMe {
    X(usize),
}
```

We will need to generate a constructor for the variant `X` with a
signature that looks something like the following:

```
fn TestMe::X(_1: usize) -> TestMe;
```

Fixes: #59021
2019-03-16 22:39:36 +08:00
kennytm
9d74503726
Rollup merge of #59025 - aoikonomopoulos:issue-57924, r=varkor
Fix generic argument lookup for Self

Rewrite the SelfCtor early and use the replacement Def when
calculating the path_segs.

Note that this also changes which def is seen by the code that
computes user_self_ty and is_alias_variant_ctor; I don't see a
immediate issue with that, but I'm not 100% clear on the
implications.

Fixes #57924

r? @eddyb
2019-03-16 22:39:29 +08:00
kennytm
d3f30c30ea
Rollup merge of #59009 - sfackler:fix-sgx-vectors, r=alexcrichton
Fix SGX implementations of read/write_vectored.
2019-03-16 22:39:15 +08:00
Vadim Petrochenkov
47ee538a28 resolve: Account for new importable entities 2019-03-16 16:08:05 +03:00
Aleksey Kladov
08f264d576 Stabilize Option::copied
closes https://github.com/rust-lang/rust/issues/57126
2019-03-16 14:11:23 +03:00