Commit Graph

80636 Commits

Author SHA1 Message Date
bors
31263f3204 Auto merge of #52285 - ljedrz:dyn_librustc_driver, r=nikomatsakis
Deny bare trait objects in librustc_driver

Enforce `#![deny(bare_trait_objects)]` in `src/librustc_driver`.
2018-07-17 02:50:14 +00:00
bors
55c04babb8 Auto merge of #52448 - Manishearth:clippyup, r=Mark-Simulacrum
Update clippy

Fixes test failures caused by https://github.com/rust-lang/rust/pull/52081
2018-07-17 00:10:17 +00:00
Manish Goregaokar
536005aefc Update clippy
Fixes test failures caused by https://github.com/rust-lang/rust/pull/52081
2018-07-16 16:30:15 -07:00
bors
1ecf6929dc Auto merge of #52081 - alexcrichton:proc-macro-stable, r=petrochenkov
rustc: Stabilize the `proc_macro` feature

This commit stabilizes some of the `proc_macro` language feature as well as a
number of APIs in the `proc_macro` crate as [previously discussed][1]. This
means that on stable Rust you can now define custom procedural macros which
operate as attributes attached to items or `macro_rules!`-like bang-style
invocations. This extends the suite of currently stable procedural macros,
custom derives, with custom attributes and custom bang macros.

Note though that despite the stabilization in this commit procedural macros are
still not usable on stable Rust. To stabilize that we'll need to stabilize at
least part of the `use_extern_macros` feature. Currently you can define a
procedural macro attribute but you can't import it to call it!

A summary of the changes made in this PR (as well as the various consequences)
is:

* The `proc_macro` language and library features are now stable.
* Other APIs not stabilized in the `proc_macro` crate are now named under a
  different feature, such as `proc_macro_diagnostic` or `proc_macro_span`.
* A few checks in resolution for `proc_macro` being enabled have switched over
  to `use_extern_macros` being enabled. This means that code using
  `#![feature(proc_macro)]` today will likely need to move to
  `#![feature(use_extern_macros)]`.

It's intended that this PR, once landed, will be followed up with an attempt to
stabilize a small slice of `use_extern_macros` just for procedural macros to
make this feature 100% usable on stable.

[1]: https://internals.rust-lang.org/t/help-stabilize-a-subset-of-macros-2-0/7252
2018-07-16 20:54:47 +00:00
Alex Crichton
65f3007fa8 rustc: Stabilize much of the proc_macro feature
This commit stabilizes some of the `proc_macro` language feature as well as a
number of APIs in the `proc_macro` crate as [previously discussed][1]. This
means that on stable Rust you can now define custom procedural macros which
operate as attributes attached to items or `macro_rules!`-like bang-style
invocations. This extends the suite of currently stable procedural macros,
custom derives, with custom attributes and custom bang macros.

Note though that despite the stabilization in this commit procedural macros are
still not usable on stable Rust. To stabilize that we'll need to stabilize at
least part of the `use_extern_macros` feature. Currently you can define a
procedural macro attribute but you can't import it to call it!

A summary of the changes made in this PR (as well as the various consequences)
is:

* The `proc_macro` language and library features are now stable.
* Other APIs not stabilized in the `proc_macro` crate are now named under a
  different feature, such as `proc_macro_diagnostic` or `proc_macro_span`.
* A few checks in resolution for `proc_macro` being enabled have switched over
  to `use_extern_macros` being enabled. This means that code using
  `#![feature(proc_macro)]` today will likely need to move to
  `#![feature(use_extern_macros)]`.

It's intended that this PR, once landed, will be followed up with an attempt to
stabilize a small slice of `use_extern_macros` just for procedural macros to
make this feature 100% usable on stable.

[1]: https://internals.rust-lang.org/t/help-stabilize-a-subset-of-macros-2-0/7252
2018-07-16 07:58:06 -07:00
bors
50702b2838 Auto merge of #52264 - csmoe:kind, r=oli-obk
Rename spanned HIR node enums from Foo_ to FooKind

Closes https://github.com/rust-lang/rust/issues/51968
r? @oli-obk
2018-07-16 14:05:19 +00:00
Oliver Schneider
c692816eaf Update the clippy submodule 2018-07-16 15:43:53 +02:00
Oliver Schneider
5cd68d5a26 Update a debug string 2018-07-16 15:09:17 +02:00
csmoe
19730cc996 Fix tidy 2018-07-16 15:09:17 +02:00
csmoe
5b0cf56f32 ItemKind 2018-07-16 15:09:17 +02:00
csmoe
7e5d224472 ForeignItemKind 2018-07-16 15:09:17 +02:00
csmoe
f12eca47e0 TyKind 2018-07-16 15:09:17 +02:00
csmoe
6a16b38198 ExprKind 2018-07-16 15:09:16 +02:00
csmoe
1d19e0c809 VariantKind 2018-07-16 15:09:16 +02:00
csmoe
14893ba96b DeclKind 2018-07-16 15:09:16 +02:00
csmoe
114314c920 StmtKind 2018-07-16 15:09:16 +02:00
csmoe
fe8955bd58 BinOpKind 2018-07-16 15:09:16 +02:00
bors
3d5753fda1 Auto merge of #52422 - michaelwoerister:revert-52266, r=oli-obk
Revert #52266

Reverts #52266 until the performance issues with that PR are ironed out.
2018-07-16 09:41:54 +00:00
bors
1fa76a4502 Auto merge of #52395 - zackmdavis:and_the_case_of_the_renamed_lint, r=estebank
structured suggestion for renamed-and-removed-lints

![lint_renamed](https://user-images.githubusercontent.com/1076988/42730470-f74688dc-87a9-11e8-8dfd-b3e1d70b0af8.png)

r? @estebank
2018-07-16 07:35:49 +00:00
Michael Woerister
d992090a70 Revert "Provide a way of accessing the ThinLTO module import map in rustc."
This reverts commit 9df56ca0ee.
2018-07-16 08:59:10 +02:00
Michael Woerister
5c0110f44b Revert "Persist ThinLTO import data in incr. comp. session directory."
This reverts commit 8dc7ddb976.
2018-07-16 08:58:56 +02:00
Michael Woerister
6064efe928 Revert "Clean up CodegenUnit name generation."
This reverts commit 2c5cd9ce53.
2018-07-16 08:58:40 +02:00
Michael Woerister
0830cc92bd Revert "Clean up LLVM module naming (just use CodegenUnit names)."
This reverts commit f6894ebe66.
2018-07-16 08:58:29 +02:00
Michael Woerister
89aa0bc108 Revert "Adapt codegen-unit tests to new CGU naming scheme."
This reverts commit 94b32adb71.
2018-07-16 08:58:15 +02:00
Michael Woerister
8acf3d26d8 Revert "Fix some run-make tests after object file naming has changed."
This reverts commit dd3f445ed2.
2018-07-16 08:58:05 +02:00
Michael Woerister
b822e699c3 Revert "Use callback-based interface to load ThinLTO import data into rustc."
This reverts commit e045a6cd8c.
2018-07-16 08:57:49 +02:00
bors
88b025bccb Auto merge of #52386 - Manishearth:quote-clarify, r=petrochenkov
Clarify how the quote macro is loaded

@QuietMisdreavus needed to figure this out for writing a testcase, this should be better documented.

r? @jseyfried
2018-07-16 04:40:21 +00:00
bors
99140df0bd Auto merge of #52373 - eonil:master, r=kennytm
Update lint plugin sample code.

The sample code is out of sync with latest test code and broken.
I just copied missing feature gates.
2018-07-16 01:40:51 +00:00
bors
100fb12a82 Auto merge of #52401 - semarie:tidy-extdeps, r=alexcrichton
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.

the purpose is to avoid such kind of issues:
- #52029 Rustfmt isn't vendored correctly
- #42719 building beta with vendor=true fail due to network dependencies

as Rust comes with several external dependencies (clippy, miri, rustfmt, rls), it is important to have a way to catch some errors in the update of this submodules.

The new check in tidy quickly reads `Cargo.lock` to search for the `source` of all packages. This attribute is present when the package comes from external source (like `crates.io-index` or some `git` repository). Some sources are whitelisted (like `crates.io-index`) as the crates are vendored.

`Cargo.lock` extract with several cases (git, crates.io, and local).
```
[[package]]
name = "rustfmt-nightly"
version = "0.8.2"
source = "git+https://github.com/rust-lang-nursery/rustfmt?rev=5e5992517d3591e2708d4ca6b155dfcbdf3344b9#5e5992517d3591e2708d4ca6b155dfcbdf3344b9"
dependencies = [
...
]

[[package]]
name = "same-file"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
...
]

[[package]]
name = "rustdoc-themes"
version = "0.1.0"
```

r? @alexcrichton
2018-07-15 23:39:28 +00:00
bors
31f1bc7b40 Auto merge of #52400 - RalfJung:match, r=oli-obk
CTFE: use binary_op to compare integer with match disriminant

This is needed to unblock https://github.com/solson/miri/pull/401: There is code in the Windows initialization functions that uses `match` to test whether a pointer is NULL.

I will add a testcase in miri; I was not sure where to add a testcase in Rust itself.

r? @oli-obk
2018-07-15 21:35:22 +00:00
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
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
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