Commit Graph

80721 Commits

Author SHA1 Message Date
bors 82e5c9c8e2 Auto merge of #52383 - petrochenkov:pmns, r=alexcrichton
resolve: Functions introducing procedural macros reserve a slot in the macro namespace as well

Similarly to https://github.com/rust-lang/rust/pull/52234, this gives us symmetry between internal and external views of a crate, but in this case it's always an error to call a procedural macro in the same crate in which it's defined.

Closes https://github.com/rust-lang/rust/issues/52225
2018-07-15 19:35:06 +00:00
Ralf Jung f9825c215b fix line numbers 2018-07-15 20:42:18 +02:00
bors fb8bde03cf Auto merge of #52399 - semarie:llvmtools, r=alexcrichton
Disable LlvmTools packaging with external LLVM

Fixes: #52102
2018-07-15 17:23:31 +00:00
bors 7751885134 Auto merge of #52372 - KarolinePlum:Duration-rounding-documentation, r=joshtriplett
Document rounding down in std::time::Durations's subsec_millis etc.

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.

Fixed #52263
2018-07-15 15:18:33 +00:00
ljedrz d5219a7caa Remove a clone in mir/transform/add_validation. 2018-07-15 16:17:15 +02:00
bors 2d89320a9a Auto merge of #52351 - mbrubeck:docs, r=apasel422
Fix link to RFC 1510

None
2018-07-15 13:12:39 +00:00
Ralf Jung 03b9020155 add license text 2018-07-15 14:26:31 +02:00
Ralf Jung 5be74148c2 add test case 2018-07-15 13:56:37 +02:00
Sébastien Marie a4ddda31e9 tidy: add a new test for external dependencies
ensure all packages in Cargo.lock will be vendored, and fail if the
source packages isn't whitelisted.
2018-07-15 12:46:02 +02:00
bors 7afa0ccb37 Auto merge of #52381 - oli-obk:ty_to_def_id, r=eddyb
Remove `ty_to_def_id`

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

The uses were mostly convenience and generally "too powerful" (would also have worked for types that weren't interesting at the use site)

r? @eddyb
2018-07-15 10:29:00 +00:00
Ralf Jung 8a17b36fc5 CTFE: use binary_op to compare integer with match disriminant 2018-07-15 11:35:18 +02:00
bors ee8cc77b32 Auto merge of #52361 - QuietMisdreavus:proc-macro-doc, r=ollie27
rustdoc: don't panic when the cross-re-export handler sees a proc-macro

When i moved the macro cross-re-export inlining code into `clean::inline`, i thought that if a macro had a `Def` that said it was a bang macro, it wouldn't be a proc macro. I thought wrong. Turns out, the `quote!()` in `libproc_macro` is actually a proc-macro, and when the `quote!()` macro is re-exported, this proc-macro is accessed in its place. This causes any `proc_macro::*` glob re-export to pull in this proc-macro, causing the assertion i added to fire, leading to an ICE. This replaces that with an Option that ignores proc-macros for the time being.

Fixes https://github.com/rust-lang/rust/issues/52129
2018-07-15 08:30:36 +00:00
Sébastien Marie 7e7c21492f tidy: avoid long line 2018-07-15 09:58:58 +02:00
Sébastien Marie 3f7ef2d733 Disable LlvmTools packaging with external LLVM
Fixes: #52102
2018-07-15 09:23:36 +02:00
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