Commit Graph

80865 Commits

Author SHA1 Message Date
bors bb09c39f44 Auto merge of #52360 - Mark-Simulacrum:fix-keep-stage-for-cg-backends, r=alexcrichton
Do not attempt to recompile codegen backend(s) with --keep-stage

Previously we'd attempt to recompile them and that would fail since
we've essentially not built the entire compiler yet, or we're faking
that fact. This commit should make us ignore the codegen backend build
as well.

Unlike the other compile steps, there is no CodegenBackendLink step that
we run here, because that is done later as a part of assembling the
final compiler and as an explicit function call.

r? @alexcrichton

I think this may fix or at least assist with #52174.

cc @RalfJung @tinco -- if you can test this patch locally that'd be
amazing; I don't want to recompile for the next couple hours to test it
locally. I don't think it can make the situation worse, and in fact, if
I've interpreted the cause of the failure correctly then this will fix
your problem.
2018-07-15 06:31:24 +00:00
Zack M. Davis d351370fa1 structured suggestion for renamed-and-removed-lints 2018-07-14 22:09:27 -07:00
bors cc903c64eb Auto merge of #52348 - oli-obk:bugfix, r=petrochenkov
Reach the body of functions returning `impl Trait` but don't treat it as public

fixes #52128

r? @pnkfelix

cc @eddyb
2018-07-15 04:01:43 +00:00
bors 7e32059532 Auto merge of #52388 - oli-obk:clippy, r=Manishearth
Update clippy and rls

r? @Manishearth

cc @kennytm @nrc
2018-07-15 00:29:43 +00:00
Cameron McCormack 02edc7e4ff
AsRef doc wording tweaks 2018-07-15 10:16:36 +10:00
Oliver Schneider 0ad54535b1 Update clippy and rls 2018-07-15 02:04:44 +02:00
Oliver Schneider ecab96fd7c Ubsan this newly discovered dead code 2018-07-15 01:52:45 +02:00
bors 49f1e5d8ab Auto merge of #52318 - TheDarkula:master, r=oli-obk
Removed the promotable field from CheckCrateVisitor...

and replaced it with the custom enum Promotability.

r? @oli-obk
2018-07-14 22:28:31 +00:00
Meade Kincke 07faca9741 Removed the promotable field from CheckCrateVisitor and replaced it with the structs Promotable and NotPromotable. 2018-07-14 21:46:19 +01:00
bors b486d3d13f Auto merge of #52326 - alexcrichton:tweak-proc-macro-expand, r=petrochenkov
rustc: Tweak expansion of #[proc_macro] for 2018

The syntactical expansion of `#[proc_macro]` and related attributes currently
contains absolute paths which conflicts with a lint for the 2018 edition,
causing issues like #52214. This commit puts a band-aid on the issue by ensuring
that procedural macros can also migrate to the 2018 edition for now by tweaking
the expansion based on what features are activated. A more long-term solution
would probably tweak the edition hygiene of spans, but this should do the trick
for now.

Closes #52214
2018-07-14 20:27:56 +00:00
Manish Goregaokar 58f3f7b081 Clarify how the quote macro is loaded 2018-07-14 12:06:50 -07:00
Guillaume Gomez 65e6b2b4a8 Pass edition flags to compiler from rustdoc as expected 2018-07-14 20:45:44 +02:00
Oliver Schneider 15a8a66d5c Lint the use of async as an identifier 2018-07-14 20:44:19 +02:00
Oliver Schneider 1caa593cb6 Expose a self-referential object 2018-07-14 20:34:32 +02:00
bors cbcd81a4a9 Auto merge of #52379 - kennytm:revert-o3, r=rkruppe
Revert #52212 (revert set opt-level = 3)

Setting -O3 causes LLVM to spuriously segfault at least on Linux. This PR reverts to -O2.

cc #52378
2018-07-14 18:28:50 +00:00
Vadim Petrochenkov 431aefb2d4 Functions introducing procedural macros reserve a slot in the macro namespace as well 2018-07-14 20:10:07 +03:00
Mark Rousskov 8eddabaafd Change keep-stage to only affect the passed stage
The best way to build a stage 2 rustc is now probably
  ./x.py build --stage 2 src/rustc # once
  ./x.py build --stage 2 --keep-stage 1 src/rustc
2018-07-14 11:00:09 -06:00
bors 0db03e635a Auto merge of #51829 - petrochenkov:noideq, r=eddyb
Remove most of `PartialEq` and `Hash` impls from AST and HIR structures

Continuation of https://github.com/rust-lang/rust/pull/49326, prerequisite for removing `PartialEq` for `Ident`.
2018-07-14 16:22:19 +00:00
Oliver Schneider a59cf4e913 Remove `ty_to_def_id` 2018-07-14 17:22:53 +02:00
kennytm d332fc38f3
Revert "Auto merge of #52212 - kennytm:o3-again, r=alexcrichton"
This reverts commit 1731f0af22, reversing
changes made to 0a8275f8b6.
2018-07-14 23:19:55 +08:00
eonil d61540ed0b Update lint plugin sample code. 2018-07-14 21:23:31 +07:00
Karoline Plum 9a86e3df99
Make rounding down clear in duration documentation
Now also the documentations of `subsec_millis`, `subsec_micros`, `as_millis` and `as_micros` make clear that the fractional nanosecond component is rounded down to whole units.
2018-07-14 15:48:52 +02:00
Vadim Petrochenkov 7d142c1e53 Address comments 2018-07-14 14:57:15 +03:00
Vadim Petrochenkov e3acb341b2 Remove some tests using AST comparisons, fix other tests 2018-07-14 14:57:14 +03:00
Vadim Petrochenkov 5987fe8f75 Remove most of `Hash` impls from AST and HIR structures 2018-07-14 14:57:14 +03:00
Vadim Petrochenkov 4d1a30c92b Remove most of `PartialEq` impls from AST and HIR structures 2018-07-14 14:56:57 +03:00
bors 1731f0af22 Auto merge of #52212 - kennytm:o3-again, r=alexcrichton
Set opt-level = 3 the third time.

This PR reverts #51165 (set -O2 for fixing #50867),
which reverted #50329 (set -O3),
which was second attempt of #48204 (set -O3, closed due to Windows segfault that is fixed now),
which reverted #42123 (set -O2 to fix spurious Windows segfaults),
which reverted #41967 (set -O3).

Since we have found the root cause of #50867, this optimization could be tried again.

Last time we've found that setting -O3 regressed the wall time of NLL (https://github.com/rust-lang/rust/pull/50329#issuecomment-388084894), so we may need another perf run to confirm. I'd like to check this *after* the LLVM 7 upgrade #51966 has been merged, so marking this as <kbd>S-blocked</kbd> for now.
2018-07-14 10:24:59 +00:00
bors 0a8275f8b6 Auto merge of #52244 - glandium:issue52097, r=estebank
Don't display default generic parameters in diagnostics that compare types

In errors like:
```
   expected type: `RawVec<foo, Global>`
      found type: `foo`
```

`RawVec` being defined as `RawVec<T, A: Alloc = Global>`, the error is better written as
```
   expected type: `RawVec<foo>`
      found type: `foo`
```

In fact, that is already what happens when `foo` is not an ADT, because in that case, the diagnostic handler doesn't try to highlight something, and just uses the `Display` trait instead of its own logic.

e.g.
```
   expected type: `RawVec<usize>`
      found type: `usize`
```
2018-07-14 06:24:42 +00:00
ljedrz 384d04d31d Reduce the number of clone()s needed in obligation_forest
Some can be avoided by using remove_entry instead of remove.
2018-07-14 07:31:19 +02:00
ljedrz 033924464f Deny bare trait objects in src/librustc_errors
Enforce `#![deny(bare_trait_objects)]` in `src/librustc_errors`.
2018-07-14 07:23:32 +02:00
bors ccade97544 Auto merge of #52328 - petrochenkov:pmroot, r=alexcrichton
proc_macro: Fix crate root detection

Fixes https://github.com/rust-lang/rust/issues/52270
2018-07-14 04:19:44 +00:00
QuietMisdreavus e78fb9bad0 add test for issue 52129 2018-07-13 21:46:47 -05:00
Mark Rousskov a569c249c2 Do not attempt to recompile codegen backend(s) with --keep-stage
Previously we'd attempt to recompile them and that would fail since
we've essentially not built the entire compiler yet, or we're faking
that fact. This commit should make us ignore the codegen backend build
as well.

Unlike the other compile steps, there is no CodegenBackendLink step that
we run here, because that is done later as a part of assembling the
final compiler and as an explicit function call.
2018-07-13 20:15:11 -06:00
bors dd1f69bd86 Auto merge of #52314 - varkor:issue-52023, r=oli-obk
Fix ICE when using a pointer cast as array size

Fixes #52023. I'm not sure if the comment https://github.com/rust-lang/rust/issues/52023#issuecomment-402402392 suggested we also emit `E0080`, but just emitting `E0018` seems reasonable for now.

r? @oli-obk
2018-07-14 02:11:10 +00:00
bors 84755473dc Auto merge of #52032 - DiamondLovesYou:amdgpu-kernel-abi, r=alexcrichton
Add the `amdgpu-kernel` ABI.

Technically, there are requirements imposed by the LLVM
`AMDGPUTargetMachine` on functions with this ABI (eg, the return type
must be void), but I'm unsure exactly where this should be enforced.
2018-07-14 00:12:21 +00:00
QuietMisdreavus a9a6952fd0 don't panic when you see proc-macros 2018-07-13 17:34:58 -05:00
Richard Diamond 6332bb1506 Add the `amdgpu-kernel` ABI.
Technically, there are requirements imposed by the LLVM
`AMDGPUTargetMachine` on functions with this ABI (eg, the return type
must be void), but I'm unsure exactly where this should be enforced.
2018-07-13 17:22:23 -05:00
bors a14a361c2c Auto merge of #52266 - michaelwoerister:incr-thinlto-preliminaries, r=alexcrichton
Preliminary work for incremental ThinLTO.

Since implementing incremental ThinLTO is a bit more involved than I initially thought, I'm splitting out some of the things that already work. This PR (1) adds a way accessing some ThinLTO information in `rustc` and (2) does some cleanup around CGU/object file naming (which makes things quite a bit nicer).

This is probably best reviewed one commit at a time.
2018-07-13 22:06:38 +00:00
QuietMisdreavus 8f1ebbc03c stabilize lint handling in rustdoc 2018-07-13 15:45:21 -05:00
bors 254f8796b7 Auto merge of #52352 - kennytm:rollup, r=kennytm
Rollup of 17 pull requests

Successful merges:

 - #51962 (Provide llvm-strip in llvm-tools component)
 - #52003 (Implement `Option::replace` in the core library)
 - #52156 (Update std::ascii::ASCIIExt deprecation notes)
 - #52280 (llvm-tools-preview: fix build-manifest)
 - #52290 (Deny bare trait objects in src/librustc_save_analysis)
 - #52293 (Deny bare trait objects in librustc_typeck)
 - #52299 (Deny bare trait objects in src/libserialize)
 - #52300 (Deny bare trait objects in librustc_target and libtest)
 - #52302 (Deny bare trait objects in the rest of rust)
 - #52310 (Backport 1.27.1 release notes to master)
 - #52315 (Resolve FIXME(#27942))
 - #52316 (task: remove wrong comments about non-existent LocalWake trait)
 - #52322 (Update llvm-rebuild-trigger in light of LLVM 7 upgrade)
 - #52330 (Don't silently ignore invalid data in target spec)
 - #52333 (CI: Enable core dump on Linux, and print their stack trace on segfault. )
 - #52346 (Fix typo in improper_ctypes suggestion)
 - #52350 (Bump bootstrap compiler to 1.28.0-beta.10)

Failed merges:

r? @ghost
2018-07-13 19:49:11 +00:00
kennytm ea9b8dd4bd
Rollup merge of #52350 - pietroalbini:bump-bootstrap, r=Mark-Simulacrum
Bump bootstrap compiler to 1.28.0-beta.10

r? @Mark-Simulacrum
2018-07-14 02:56:58 +08:00
kennytm fe1b41016c
Rollup merge of #52346 - rkruppe:patch-1, r=cramertj
Fix typo in improper_ctypes suggestion

closes #52345
2018-07-14 02:56:57 +08:00
kennytm 3d6840234c
Rollup merge of #52333 - kennytm:linux-core-dump, r=alexcrichton
CI: Enable core dump on Linux, and print their stack trace on segfault.
2018-07-14 02:56:56 +08:00
kennytm fe64419102
Rollup merge of #52330 - jethrogb:jb/target-link-args, r=varkor
Don't silently ignore invalid data in target spec

This is technically a breaking change, but only because invalid data was previously silently being ignored.
2018-07-14 02:56:55 +08:00
kennytm 383d50f667
Rollup merge of #52322 - varkor:llvm-7-rebuild-trigger, r=alexcrichton
Update llvm-rebuild-trigger in light of LLVM 7 upgrade

Not triggering a LLVM rebuild [since the LLVM 7 upgrade](https://github.com/rust-lang/rust/pull/51966#issuecomment-404624633) causes builds of rustc to fail.

r? @alexcrichton
2018-07-14 02:56:53 +08:00
kennytm 591accf7b2
Rollup merge of #52316 - seanmonstar:waker-unsafety, r=cramertj
task: remove wrong comments about non-existent LocalWake trait

~~A `LocalWaker` is specifically `!Send `, and the unsafety comment around
`LocalWaker::new` only specifies that it be safe to call `wake_local`.
One could then accidentally promote a `LocalWaker` into a `Waker`, which
is universally `Send`, simply via `Waker::from(local_waker)`. A
`LocalWaker` the was built expecting to not be `Send`, such as using
`Rc`, could be sent to other threads safely.~~

~~Separately, though somewhat related, `Context` holds a `&LocalWaker`
internally, and exposes a `waker() -> &Waker` method. This simply
transmutes the `&LocalWaker` to `&Waker`, which would be unsound, except
that you can't "send" a `&Waker`, you'd need to clone it first. Since
`UnsafeWake::clone_raw` requires that it return a `Waker`, the transmute
is not unsound. The transmuted `LocalWaker` will be promoted to a
`Waker` correctly.~~

~~That would mean that if `UnsafeWake::clone_raw` were to be changed, such
as returning `Self` instead of `Waker`, this would no longer be sound.
Thus, this also adds a comment to `clone_raw` to remember this.~~

r? @cramertj
2018-07-14 02:56:52 +08:00
kennytm 2fa00da26f
Rollup merge of #52315 - ljedrz:FIXME_#27942, r=petrochenkov
Resolve FIXME(#27942)

[related issue](https://github.com/rust-lang/rust/issues/27942)

cc [#44366](https://github.com/rust-lang/rust/issues/44366)
2018-07-14 02:56:51 +08:00
kennytm 443150f0ee
Rollup merge of #52310 - Mark-Simulacrum:release-notes-backport-from-stable, r=pietroalbini
Backport 1.27.1 release notes to master

r? @pietroalbini
2018-07-14 02:56:50 +08:00
kennytm 1d035f7bcc
Rollup merge of #52302 - ljedrz:dyn_futureproofing, r=cramertj
Deny bare trait objects in the rest of rust

Add `#![deny(bare_trait_objects)]` to all the modules not covered before (those did not require code changes) that I consider applicable (I left out shims) in order to futureproof them.
2018-07-14 02:56:49 +08:00
kennytm 700f19ad09
Rollup merge of #52300 - ljedrz:dyn_target_test, r=Mark-Simulacrum
Deny bare trait objects in librustc_target and libtest

Enforce `#![deny(bare_trait_objects)]` in `src/librustc_target` and `src/libtest`.
2018-07-14 02:56:47 +08:00