diff options
| author | bors <bors@rust-lang.org> | 2022-04-19 13:10:12 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-04-19 13:10:12 +0000 |
| commit | 4ca19e09d302a4cbde14f9cb1bc109179dc824cd (patch) | |
| tree | b779b25871b429dfaafe1c4de5cc5051333c3689 /src | |
| parent | c102c5cfc60203c82460bdde2eecd19ccd8c125b (diff) | |
| parent | 9fad214593e87f151b8f09ff0cda9cd52372d037 (diff) | |
| download | rust-4ca19e09d302a4cbde14f9cb1bc109179dc824cd.tar.gz rust-4ca19e09d302a4cbde14f9cb1bc109179dc824cd.zip | |
Auto merge of #96214 - Dylan-DPC:rollup-a5b4fow, r=Dylan-DPC
Rollup of 6 pull requests Successful merges: - #94493 (Improved diagnostic on failure to meet send bound on future in a foreign crate) - #95809 (Fix typo in bootstrap.py) - #96086 (Remove `--extern-location` and all associated code) - #96089 (`alloc`: make `vec!` unavailable under `no_global_oom_handling`) - #96122 (Fix an invalid error for a suggestion to add a slice in pattern-matching) - #96142 (Stop using CRATE_DEF_INDEX outside of metadata encoding.) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'src')
38 files changed, 83 insertions, 248 deletions
diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py index d437397045c..ac1c47524fd 100644 --- a/src/bootstrap/bootstrap.py +++ b/src/bootstrap/bootstrap.py @@ -817,7 +817,7 @@ class RustBuild(object): return os.path.join(self.bin_root(True), '.rustfmt-stamp') def llvm_stamp(self): - """Return the path for .rustfmt-stamp + """Return the path for .llvm-stamp >>> rb = RustBuild() >>> rb.build_dir = "build" diff --git a/src/doc/unstable-book/src/compiler-flags/extern-location.md b/src/doc/unstable-book/src/compiler-flags/extern-location.md deleted file mode 100644 index 1c80d5426bf..00000000000 --- a/src/doc/unstable-book/src/compiler-flags/extern-location.md +++ /dev/null @@ -1,31 +0,0 @@ -# `extern-location` - -MCP for this feature: [#303] - -[#303]: https://github.com/rust-lang/compiler-team/issues/303 - ------------------------- - -The `unused-extern-crates` lint reports when a crate was specified on the rustc -command-line with `--extern name=path` but no symbols were referenced in it. -This is useful to know, but it's hard to map that back to a specific place a user -or tool could fix (ie, to remove the unused dependency). - -The `--extern-location` flag allows the build system to associate a location with -the `--extern` option, which is then emitted as part of the diagnostics. This location -is abstract and just round-tripped through rustc; the compiler never attempts to -interpret it in any way. - -There are two supported forms of location: a bare string, or a blob of json: -- `--extern-location foo=raw:Makefile:123` would associate the raw string `Makefile:123` -- `--extern-location 'bar=json:{"target":"//my_project:library","dep":"//common:serde"}` would - associate the json structure with `--extern bar=<path>`, indicating which dependency of - which rule introduced the unused extern crate. - -This primarily intended to be used with tooling - for example a linter which can automatically -remove unused dependencies - rather than being directly presented to users. - -`raw` locations are presented as part of the normal rendered diagnostics and included in -the json form. `json` locations are only included in the json form of diagnostics, -as a `tool_metadata` field. For `raw` locations `tool_metadata` is simply a json string, -whereas `json` allows the rustc invoker to fully control its form and content. diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 21016afbf5f..a070cef2272 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -15,7 +15,7 @@ use rustc_attr as attr; use rustc_data_structures::fx::{FxHashMap, FxHashSet}; use rustc_hir as hir; use rustc_hir::def::{CtorKind, DefKind, Res}; -use rustc_hir::def_id::{DefId, CRATE_DEF_INDEX, LOCAL_CRATE}; +use rustc_hir::def_id::{DefId, LOCAL_CRATE}; use rustc_infer::infer::region_constraints::{Constraint, RegionConstraintData}; use rustc_middle::middle::resolve_lifetime as rl; use rustc_middle::ty::fold::TypeFolder; @@ -1975,7 +1975,7 @@ fn clean_extern_crate( // this is the ID of the `extern crate` statement let cnum = cx.tcx.extern_mod_stmt_cnum(krate.def_id).unwrap_or(LOCAL_CRATE); // this is the ID of the crate itself - let crate_def_id = DefId { krate: cnum, index: CRATE_DEF_INDEX }; + let crate_def_id = cnum.as_def_id(); let attrs = cx.tcx.hir().attrs(krate.hir_id()); let ty_vis = cx.tcx.visibility(krate.def_id); let please_inline = ty_vis.is_public() @@ -2094,7 +2094,7 @@ fn clean_use_statement( } else { if inline_attr.is_none() { if let Res::Def(DefKind::Mod, did) = path.res { - if !did.is_local() && did.index == CRATE_DEF_INDEX { + if !did.is_local() && did.is_crate_root() { // if we're `pub use`ing an extern crate root, don't inline it unless we // were specifically asked for it denied = true; diff --git a/src/librustdoc/clean/types.rs b/src/librustdoc/clean/types.rs index 4b473df155f..e30bc6e0a97 100644 --- a/src/librustdoc/clean/types.rs +++ b/src/librustdoc/clean/types.rs @@ -20,7 +20,7 @@ use rustc_data_structures::fx::{FxHashMap, FxHashSet}; use rustc_data_structures::thin_vec::ThinVec; use rustc_hir as hir; use rustc_hir::def::{CtorKind, DefKind, Res}; -use rustc_hir::def_id::{CrateNum, DefId, DefIndex, CRATE_DEF_INDEX, LOCAL_CRATE}; +use rustc_hir::def_id::{CrateNum, DefId, LOCAL_CRATE}; use rustc_hir::lang_items::LangItem; use rustc_hir::{BodyId, Mutability}; use rustc_index::vec::IndexVec; @@ -104,14 +104,6 @@ impl ItemId { ItemId::Primitive(_, krate) => krate, } } - - #[inline] - crate fn index(self) -> Option<DefIndex> { - match self { - ItemId::DefId(id) => Some(id.index), - _ => None, - } - } } impl From<DefId> for ItemId { @@ -160,7 +152,7 @@ impl ExternalCrate { #[inline] crate fn def_id(&self) -> DefId { - DefId { krate: self.crate_num, index: CRATE_DEF_INDEX } + self.crate_num.as_def_id() } crate fn src(&self, tcx: TyCtxt<'_>) -> FileName { @@ -217,7 +209,7 @@ impl ExternalCrate { // Failing that, see if there's an attribute specifying where to find this // external crate - let did = DefId { krate: self.crate_num, index: CRATE_DEF_INDEX }; + let did = self.crate_num.as_def_id(); tcx.get_attrs(did) .lists(sym::doc) .filter(|a| a.has_name(sym::html_root_url)) @@ -559,7 +551,7 @@ impl Item { } crate fn is_crate(&self) -> bool { - self.is_mod() && self.item_id.as_def_id().map_or(false, |did| did.index == CRATE_DEF_INDEX) + self.is_mod() && self.item_id.as_def_id().map_or(false, |did| did.is_crate_root()) } crate fn is_mod(&self) -> bool { self.type_() == ItemType::Module diff --git a/src/librustdoc/formats/cache.rs b/src/librustdoc/formats/cache.rs index 06e7c9e763d..b4d2772b31d 100644 --- a/src/librustdoc/formats/cache.rs +++ b/src/librustdoc/formats/cache.rs @@ -1,7 +1,7 @@ use std::mem; use rustc_data_structures::fx::{FxHashMap, FxHashSet}; -use rustc_hir::def_id::{CrateNum, DefId, CRATE_DEF_INDEX}; +use rustc_hir::def_id::{CrateNum, DefId}; use rustc_middle::middle::privacy::AccessLevels; use rustc_middle::ty::TyCtxt; use rustc_span::{sym, Symbol}; @@ -302,7 +302,7 @@ impl<'a, 'tcx> DocFolder for CacheBuilder<'a, 'tcx> { // A crate has a module at its root, containing all items, // which should not be indexed. The crate-item itself is // inserted later on when serializing the search-index. - if item.item_id.index().map_or(false, |idx| idx != CRATE_DEF_INDEX) { + if item.item_id.as_def_id().map_or(false, |idx| !idx.is_crate_root()) { let desc = item.doc_value().map_or_else(String::new, |x| { short_markdown_summary(x.as_str(), &item.link_names(self.cache)) }); diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs index 55b0028180f..6954e2363f5 100644 --- a/src/librustdoc/html/format.rs +++ b/src/librustdoc/html/format.rs @@ -18,7 +18,6 @@ use rustc_hir::def_id::DefId; use rustc_middle::ty; use rustc_middle::ty::DefIdTree; use rustc_middle::ty::TyCtxt; -use rustc_span::def_id::CRATE_DEF_INDEX; use rustc_span::{sym, Symbol}; use rustc_target::spec::abi::Abi; @@ -1312,7 +1311,7 @@ impl clean::Visibility { // visibility, so it shouldn't matter. let parent_module = find_nearest_parent_module(cx.tcx(), item_did.expect_def_id()); - if vis_did.index == CRATE_DEF_INDEX { + if vis_did.is_crate_root() { "pub(crate) ".to_owned() } else if parent_module == Some(vis_did) { // `pub(in foo)` where `foo` is the parent module @@ -1360,7 +1359,7 @@ impl clean::Visibility { // visibility, so it shouldn't matter. let parent_module = find_nearest_parent_module(tcx, item_did); - if vis_did.index == CRATE_DEF_INDEX { + if vis_did.is_crate_root() { "pub(crate) ".to_owned() } else if parent_module == Some(vis_did) { // `pub(in foo)` where `foo` is the parent module diff --git a/src/librustdoc/json/conversions.rs b/src/librustdoc/json/conversions.rs index 0b5fb480595..56b02cd8480 100644 --- a/src/librustdoc/json/conversions.rs +++ b/src/librustdoc/json/conversions.rs @@ -10,7 +10,6 @@ use std::fmt; use rustc_ast::ast; use rustc_hir::{def::CtorKind, def_id::DefId}; use rustc_middle::ty::{self, TyCtxt}; -use rustc_span::def_id::CRATE_DEF_INDEX; use rustc_span::Pos; use rustc_target::spec::abi::Abi as RustcAbi; @@ -83,7 +82,7 @@ impl JsonRenderer<'_> { match v { Public => Visibility::Public, Inherited => Visibility::Default, - Restricted(did) if did.index == CRATE_DEF_INDEX => Visibility::Crate, + Restricted(did) if did.is_crate_root() => Visibility::Crate, Restricted(did) => Visibility::Restricted { parent: from_item_id(did.into()), path: self.tcx.def_path(did).to_string_no_crate_verbose(), diff --git a/src/librustdoc/visit_lib.rs b/src/librustdoc/visit_lib.rs index 5bcec779bc0..9723cdbe334 100644 --- a/src/librustdoc/visit_lib.rs +++ b/src/librustdoc/visit_lib.rs @@ -1,6 +1,6 @@ use rustc_data_structures::fx::FxHashSet; use rustc_hir::def::{DefKind, Res}; -use rustc_hir::def_id::{CrateNum, DefId, CRATE_DEF_INDEX}; +use rustc_hir::def_id::{CrateNum, DefId}; use rustc_middle::middle::privacy::{AccessLevel, AccessLevels}; use rustc_middle::ty::TyCtxt; @@ -29,7 +29,7 @@ impl<'a, 'tcx> LibEmbargoVisitor<'a, 'tcx> { } crate fn visit_lib(&mut self, cnum: CrateNum) { - let did = DefId { krate: cnum, index: CRATE_DEF_INDEX }; + let did = cnum.as_def_id(); self.update(did, Some(AccessLevel::Public)); self.visit_mod(did); } diff --git a/src/test/ui/async-await/issues/issue-67893.rs b/src/test/ui/async-await/issues/issue-67893.rs index 8b53408d758..d73772e5fa0 100644 --- a/src/test/ui/async-await/issues/issue-67893.rs +++ b/src/test/ui/async-await/issues/issue-67893.rs @@ -7,5 +7,5 @@ fn g(_: impl Send) {} fn main() { g(issue_67893::run()) - //~^ ERROR generator cannot be sent between threads safely + //~^ ERROR future cannot be sent between threads safely } diff --git a/src/test/ui/async-await/issues/issue-67893.stderr b/src/test/ui/async-await/issues/issue-67893.stderr index 0aa0d5d7ccd..316b6d06f93 100644 --- a/src/test/ui/async-await/issues/issue-67893.stderr +++ b/src/test/ui/async-await/issues/issue-67893.stderr @@ -1,10 +1,22 @@ -error: generator cannot be sent between threads safely +error: future cannot be sent between threads safely --> $DIR/issue-67893.rs:9:7 | LL | g(issue_67893::run()) - | ^^^^^^^^^^^^^^^^^^ generator is not `Send` + | ^^^^^^^^^^^^^^^^^^ future is not `Send` | = help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `MutexGuard<'_, ()>` +note: future is not `Send` as this value is used across an await + --> $DIR/auxiliary/issue_67893.rs:9:26 + | +LL | f(*x.lock().unwrap()).await; + | ----------------- ^^^^^^ await occurs here, with `x.lock().unwrap()` maybe used later + | | + | has type `MutexGuard<'_, ()>` which is not `Send` +note: `x.lock().unwrap()` is later dropped here + --> $DIR/auxiliary/issue_67893.rs:9:32 + | +LL | f(*x.lock().unwrap()).await; + | ^ note: required by a bound in `g` --> $DIR/issue-67893.rs:6:14 | diff --git a/src/test/ui/suggestions/pattern-struct-with-slice-vec-field.rs b/src/test/ui/suggestions/pattern-struct-with-slice-vec-field.rs new file mode 100644 index 00000000000..5b223a91f50 --- /dev/null +++ b/src/test/ui/suggestions/pattern-struct-with-slice-vec-field.rs @@ -0,0 +1,35 @@ +use std::ops::Deref; + +struct Foo { + v: Vec<u32>, +} + +struct Bar { + v: Vec<u32>, +} + +impl Deref for Bar { + type Target = Vec<u32>; + + fn deref(&self) -> &Self::Target { + &self.v + } +} + +fn f(foo: &Foo) { + match foo { + Foo { v: [1, 2] } => {} + //~^ ERROR expected an array or slice, found `Vec<u32> + _ => {} + } +} + +fn bar(bar: &Bar) { + match bar { + Bar { v: [1, 2] } => {} + //~^ ERROR expected an array or slice, found `Vec<u32> + _ => {} + } +} + +fn main() {} diff --git a/src/test/ui/suggestions/pattern-struct-with-slice-vec-field.stderr b/src/test/ui/suggestions/pattern-struct-with-slice-vec-field.stderr new file mode 100644 index 00000000000..5b48a8b18a5 --- /dev/null +++ b/src/test/ui/suggestions/pattern-struct-with-slice-vec-field.stderr @@ -0,0 +1,15 @@ +error[E0529]: expected an array or slice, found `Vec<u32>` + --> $DIR/pattern-struct-with-slice-vec-field.rs:21:18 + | +LL | Foo { v: [1, 2] } => {} + | ^^^^^^ pattern cannot match with input type `Vec<u32>` + +error[E0529]: expected an array or slice, found `Vec<u32>` + --> $DIR/pattern-struct-with-slice-vec-field.rs:29:18 + | +LL | Bar { v: [1, 2] } => {} + | ^^^^^^ pattern cannot match with input type `Vec<u32>` + +error: aborting due to 2 previous errors + +For more information about this error, try `rustc --explain E0529`. diff --git a/src/test/ui/unused-crate-deps/extern-loc-bad-loctype.rs b/src/test/ui/unused-crate-deps/extern-loc-bad-loctype.rs deleted file mode 100644 index e69df0359fd..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-bad-loctype.rs +++ /dev/null @@ -1,8 +0,0 @@ -// --extern-location with bad location type - -// aux-crate:bar=bar.rs -// compile-flags:--extern-location bar=badloc:in-the-test-file -Z unstable-options - -#![warn(unused_crate_dependencies)] - -fn main() {} diff --git a/src/test/ui/unused-crate-deps/extern-loc-bad-loctype.stderr b/src/test/ui/unused-crate-deps/extern-loc-bad-loctype.stderr deleted file mode 100644 index 12378f12557..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-bad-loctype.stderr +++ /dev/null @@ -1,2 +0,0 @@ -error: unknown location type `badloc`: use `raw` or `json` - diff --git a/src/test/ui/unused-crate-deps/extern-loc-defl-json.rs b/src/test/ui/unused-crate-deps/extern-loc-defl-json.rs deleted file mode 100644 index a023f535b81..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-defl-json.rs +++ /dev/null @@ -1,10 +0,0 @@ -// Default extern location from name and path if one isn't specified - -// check-pass -// aux-crate:bar=bar.rs -// compile-flags:--error-format json - -#![warn(unused_crate_dependencies)] -//~^ WARNING external crate `bar` unused in - -fn main() {} diff --git a/src/test/ui/unused-crate-deps/extern-loc-defl-json.stderr b/src/test/ui/unused-crate-deps/extern-loc-defl-json.stderr deleted file mode 100644 index cee3f6c1495..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-defl-json.stderr +++ /dev/null @@ -1,17 +0,0 @@ -{"message":"external crate `bar` unused in `extern_loc_defl_json`: remove the dependency or add `use bar as _;`","code":{"code":"unused_crate_dependencies","explanation":null},"level":"warning","spans":[{"file_name":"$DIR/extern-loc-defl-json.rs","byte_start":146,"byte_end":146,"line_start":7,"line_end":7,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"#![warn(unused_crate_dependencies)]","highlight_start":1,"highlight_end":1}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the lint level is defined here","code":null,"level":"note","spans":[{"file_name":"$DIR/extern-loc-defl-json.rs","byte_start":154,"byte_end":179,"line_start":7,"line_end":7,"column_start":9,"column_end":34,"is_primary":true,"text":[{"text":"#![warn(unused_crate_dependencies)]","highlight_start":9,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"remove unnecessary dependency `bar`","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"json extern location","code":null,"level":"help","spans":[],"children":[],"rendered":null,"tool_metadata":{"name":"bar"}}],"rendered":"warning: external crate `bar` unused in `extern_loc_defl_json`: remove the dependency or add `use bar as _;` - --> $DIR/extern-loc-defl-json.rs:7:1 - | -LL | #![warn(unused_crate_dependencies)] - | ^ - | -note: the lint level is defined here - --> $DIR/extern-loc-defl-json.rs:7:9 - | -LL | #![warn(unused_crate_dependencies)] - | ^^^^^^^^^^^^^^^^^^^^^^^^^ - = help: remove unnecessary dependency `bar` - -"} -{"message":"1 warning emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"warning: 1 warning emitted - -"} diff --git a/src/test/ui/unused-crate-deps/extern-loc-json-bad-json.rs b/src/test/ui/unused-crate-deps/extern-loc-json-bad-json.rs deleted file mode 100644 index aee6233e428..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-json-bad-json.rs +++ /dev/null @@ -1,8 +0,0 @@ -// --extern-location with a raw reference - -// aux-crate:bar=bar.rs -// compile-flags:--extern-location bar=json:[{"malformed -Z unstable-options - -#![warn(unused_crate_dependencies)] - -fn main() {} diff --git a/src/test/ui/unused-crate-deps/extern-loc-json-bad-json.stderr b/src/test/ui/unused-crate-deps/extern-loc-json-bad-json.stderr deleted file mode 100644 index 20d606372e0..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-json-bad-json.stderr +++ /dev/null @@ -1,2 +0,0 @@ -error: `--extern-location`: malformed json location `[{"malformed` - diff --git a/src/test/ui/unused-crate-deps/extern-loc-json-json.rs b/src/test/ui/unused-crate-deps/extern-loc-json-json.rs deleted file mode 100644 index c7988cd469e..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-json-json.rs +++ /dev/null @@ -1,10 +0,0 @@ -// --extern-location with a raw reference - -// check-pass -// aux-crate:bar=bar.rs -// compile-flags:--extern-location bar=json:{"key":123,"value":{}} --error-format json -Z unstable-options - -#![warn(unused_crate_dependencies)] -//~^ WARNING external crate `bar` unused in - -fn main() {} diff --git a/src/test/ui/unused-crate-deps/extern-loc-json-json.stderr b/src/test/ui/unused-crate-deps/extern-loc-json-json.stderr deleted file mode 100644 index 001ec6a2554..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-json-json.stderr +++ /dev/null @@ -1,17 +0,0 @@ -{"message":"external crate `bar` unused in `extern_loc_json_json`: remove the dependency or add `use bar as _;`","code":{"code":"unused_crate_dependencies","explanation":null},"level":"warning","spans":[{"file_name":"$DIR/extern-loc-json-json.rs","byte_start":189,"byte_end":189,"line_start":7,"line_end":7,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"#![warn(unused_crate_dependencies)]","highlight_start":1,"highlight_end":1}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the lint level is defined here","code":null,"level":"note","spans":[{"file_name":"$DIR/extern-loc-json-json.rs","byte_start":197,"byte_end":222,"line_start":7,"line_end":7,"column_start":9,"column_end":34,"is_primary":true,"text":[{"text":"#![warn(unused_crate_dependencies)]","highlight_start":9,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"remove unnecessary dependency `bar`","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"json extern location","code":null,"level":"help","spans":[],"children":[],"rendered":null,"tool_metadata":{"key":123,"value":{}}}],"rendered":"warning: external crate `bar` unused in `extern_loc_json_json`: remove the dependency or add `use bar as _;` - --> $DIR/extern-loc-json-json.rs:7:1 - | -LL | #![warn(unused_crate_dependencies)] - | ^ - | -note: the lint level is defined here - --> $DIR/extern-loc-json-json.rs:7:9 - | -LL | #![warn(unused_crate_dependencies)] - | ^^^^^^^^^^^^^^^^^^^^^^^^^ - = help: remove unnecessary dependency `bar` - -"} -{"message":"1 warning emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"warning: 1 warning emitted - -"} diff --git a/src/test/ui/unused-crate-deps/extern-loc-json.rs b/src/test/ui/unused-crate-deps/extern-loc-json.rs deleted file mode 100644 index c0d76c86b89..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-json.rs +++ /dev/null @@ -1,10 +0,0 @@ -// --extern-location with a raw reference - -// check-pass -// aux-crate:bar=bar.rs -// compile-flags:--extern-location bar=json:{"key":123,"value":{}} -Z unstable-options - -#![warn(unused_crate_dependencies)] -//~^ WARNING external crate `bar` unused in - -fn main() {} diff --git a/src/test/ui/unused-crate-deps/extern-loc-json.stderr b/src/test/ui/unused-crate-deps/extern-loc-json.stderr deleted file mode 100644 index a6bbc0da1c6..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-json.stderr +++ /dev/null @@ -1,15 +0,0 @@ -warning: external crate `bar` unused in `extern_loc_json`: remove the dependency or add `use bar as _;` - --> $DIR/extern-loc-json.rs:7:1 - | -LL | #![warn(unused_crate_dependencies)] - | ^ - | -note: the lint level is defined here - --> $DIR/extern-loc-json.rs:7:9 - | -LL | #![warn(unused_crate_dependencies)] - | ^^^^^^^^^^^^^^^^^^^^^^^^^ - = help: remove unnecessary dependency `bar` - -warning: 1 warning emitted - diff --git a/src/test/ui/unused-crate-deps/extern-loc-missing-loc.rs b/src/test/ui/unused-crate-deps/extern-loc-missing-loc.rs deleted file mode 100644 index 6ac558974d0..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-missing-loc.rs +++ /dev/null @@ -1,8 +0,0 @@ -// --extern-location with a raw reference - -// aux-crate:bar=bar.rs -// compile-flags:--extern-location bar -Zunstable-options - -#![warn(unused_crate_dependencies)] - -fn main() {} diff --git a/src/test/ui/unused-crate-deps/extern-loc-missing-loc.stderr b/src/test/ui/unused-crate-deps/extern-loc-missing-loc.stderr deleted file mode 100644 index 4584fbfb67f..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-missing-loc.stderr +++ /dev/null @@ -1,2 +0,0 @@ -error: `--extern-location`: specify location for extern crate `bar` - diff --git a/src/test/ui/unused-crate-deps/extern-loc-missing-loctype.rs b/src/test/ui/unused-crate-deps/extern-loc-missing-loctype.rs deleted file mode 100644 index 3590b9c2812..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-missing-loctype.rs +++ /dev/null @@ -1,8 +0,0 @@ -// --extern-location with no type - -// aux-crate:bar=bar.rs -// compile-flags:--extern-location bar=missing-loc-type -Z unstable-options - -#![warn(unused_crate_dependencies)] - -fn main() {} diff --git a/src/test/ui/unused-crate-deps/extern-loc-missing-loctype.stderr b/src/test/ui/unused-crate-deps/extern-loc-missing-loctype.stderr deleted file mode 100644 index d0c36ebeb14..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-missing-loctype.stderr +++ /dev/null @@ -1,2 +0,0 @@ -error: unknown location type `missing-loc-type`: use `raw` or `json` - diff --git a/src/test/ui/unused-crate-deps/extern-loc-raw-json.rs b/src/test/ui/unused-crate-deps/extern-loc-raw-json.rs deleted file mode 100644 index 64c3d77ce08..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-raw-json.rs +++ /dev/null @@ -1,10 +0,0 @@ -// --extern-location with a raw reference - -// check-pass -// aux-crate:bar=bar.rs -// compile-flags:--extern-location bar=raw:in-the-test-file --error-format json -Z unstable-options - -#![warn(unused_crate_dependencies)] -//~^ WARNING external crate `bar` unused in - -fn main() {} diff --git a/src/test/ui/unused-crate-deps/extern-loc-raw-json.stderr b/src/test/ui/unused-crate-deps/extern-loc-raw-json.stderr deleted file mode 100644 index 4083bd51835..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-raw-json.stderr +++ /dev/null @@ -1,17 +0,0 @@ -{"message":"external crate `bar` unused in `extern_loc_raw_json`: remove the dependency or add `use bar as _;`","code":{"code":"unused_crate_dependencies","explanation":null},"level":"warning","spans":[{"file_name":"$DIR/extern-loc-raw-json.rs","byte_start":182,"byte_end":182,"line_start":7,"line_end":7,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"#![warn(unused_crate_dependencies)]","highlight_start":1,"highlight_end":1}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the lint level is defined here","code":null,"level":"note","spans":[{"file_name":"$DIR/extern-loc-raw-json.rs","byte_start":190,"byte_end":215,"line_start":7,"line_end":7,"column_start":9,"column_end":34,"is_primary":true,"text":[{"text":"#![warn(unused_crate_dependencies)]","highlight_start":9,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"remove unnecessary dependency `bar` at `in-the-test-file`","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"raw extern location","code":null,"level":"help","spans":[{"file_name":"$DIR/extern-loc-raw-json.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1,"is_primary":true,"text":[],"label":null,"suggested_replacement":"in-the-test-file","suggestion_applicability":"Unspecified","expansion":null}],"children":[],"rendered":null},{"message":"json extern location","code":null,"level":"help","spans":[],"children":[],"rendered":null,"tool_metadata":"in-the-test-file"}],"rendered":"warning: external crate `bar` unused in `extern_loc_raw_json`: remove the dependency or add `use bar as _;` - --> $DIR/extern-loc-raw-json.rs:7:1 - | -LL | #![warn(unused_crate_dependencies)] - | ^ - | -note: the lint level is defined here - --> $DIR/extern-loc-raw-json.rs:7:9 - | -LL | #![warn(unused_crate_dependencies)] - | ^^^^^^^^^^^^^^^^^^^^^^^^^ - = help: remove unnecessary dependency `bar` at `in-the-test-file` - -"} -{"message":"1 warning emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"warning: 1 warning emitted - -"} diff --git a/src/test/ui/unused-crate-deps/extern-loc-raw-missing-loc.rs b/src/test/ui/unused-crate-deps/extern-loc-raw-missing-loc.rs deleted file mode 100644 index a9e7afbda31..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-raw-missing-loc.rs +++ /dev/null @@ -1,8 +0,0 @@ -// --extern-location with a raw reference - -// aux-crate:bar=bar.rs -// compile-flags:--extern-location bar=raw -Z unstable-options - -#![warn(unused_crate_dependencies)] - -fn main() {} diff --git a/src/test/ui/unused-crate-deps/extern-loc-raw-missing-loc.stderr b/src/test/ui/unused-crate-deps/extern-loc-raw-missing-loc.stderr deleted file mode 100644 index 4b51266e4f6..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-raw-missing-loc.stderr +++ /dev/null @@ -1,2 +0,0 @@ -error: `--extern-location`: missing `raw` location - diff --git a/src/test/ui/unused-crate-deps/extern-loc-raw.rs b/src/test/ui/unused-crate-deps/extern-loc-raw.rs deleted file mode 100644 index 27d0975d01a..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-raw.rs +++ /dev/null @@ -1,10 +0,0 @@ -// --extern-location with a raw reference - -// check-pass -// aux-crate:bar=bar.rs -// compile-flags:--extern-location bar=raw:in-the-test-file -Z unstable-options - -#![warn(unused_crate_dependencies)] -//~^ WARNING external crate `bar` unused in - -fn main() {} diff --git a/src/test/ui/unused-crate-deps/extern-loc-raw.stderr b/src/test/ui/unused-crate-deps/extern-loc-raw.stderr deleted file mode 100644 index 2cdd0055866..00000000000 --- a/src/test/ui/unused-crate-deps/extern-loc-raw.stderr +++ /dev/null @@ -1,15 +0,0 @@ -warning: external crate `bar` unused in `extern_loc_raw`: remove the dependency or add `use bar as _;` - --> $DIR/extern-loc-raw.rs:7:1 - | -LL | #![warn(unused_crate_dependencies)] - | ^ - | -note: the lint level is defined here - --> $DIR/extern-loc-raw.rs:7:9 - | -LL | #![warn(unused_crate_dependencies)] - | ^^^^^^^^^^^^^^^^^^^^^^^^^ - = help: remove unnecessary dependency `bar` at `in-the-test-file` - -warning: 1 warning emitted - diff --git a/src/test/ui/unused-crate-deps/libfib.stderr b/src/test/ui/unused-crate-deps/libfib.stderr index 479f51bff46..15833126bd6 100644 --- a/src/test/ui/unused-crate-deps/libfib.stderr +++ b/src/test/ui/unused-crate-deps/libfib.stderr @@ -5,7 +5,6 @@ LL | pub fn fib(n: u32) -> Vec<u32> { | ^ | = note: requested on the command line with `-W unused-crate-dependencies` - = help: remove unnecessary dependency `bar` warning: 1 warning emitted diff --git a/src/test/ui/unused-crate-deps/unused-aliases.stderr b/src/test/ui/unused-crate-deps/unused-aliases.stderr index 1142d156d0e..c8c6c4507b0 100644 --- a/src/test/ui/unused-crate-deps/unused-aliases.stderr +++ b/src/test/ui/unused-crate-deps/unused-aliases.stderr @@ -9,7 +9,6 @@ note: the lint level is defined here | LL | #![warn(unused_crate_dependencies)] | ^^^^^^^^^^^^^^^^^^^^^^^^^ - = help: remove unnecessary dependency `barbar` warning: 1 warning emitted diff --git a/src/test/ui/unused-crate-deps/warn-attr.stderr b/src/test/ui/unused-crate-deps/warn-attr.stderr index 29667d9525c..0d38315704b 100644 --- a/src/test/ui/unused-crate-deps/warn-attr.stderr +++ b/src/test/ui/unused-crate-deps/warn-attr.stderr @@ -9,7 +9,6 @@ note: the lint level is defined here | LL | #![warn(unused_crate_dependencies)] | ^^^^^^^^^^^^^^^^^^^^^^^^^ - = help: remove unnecessary dependency `bar` warning: 1 warning emitted diff --git a/src/test/ui/unused-crate-deps/warn-cmdline-static.stderr b/src/test/ui/unused-crate-deps/warn-cmdline-static.stderr index 2c0c9215129..65956461d64 100644 --- a/src/test/ui/unused-crate-deps/warn-cmdline-static.stderr +++ b/src/test/ui/unused-crate-deps/warn-cmdline-static.stderr @@ -5,7 +5,6 @@ LL | fn main() {} | ^ | = note: requested on the command line with `-W unused-crate-dependencies` - = help: remove unnecessary dependency `bar` warning: 1 warning emitted diff --git a/src/test/ui/unused-crate-deps/warn-cmdline.stderr b/src/test/ui/unused-crate-deps/warn-cmdline.stderr index 2cd49218f5a..ea675ba9a1e 100644 --- a/src/test/ui/unused-crate-deps/warn-cmdline.stderr +++ b/src/test/ui/unused-crate-deps/warn-cmdline.stderr @@ -5,7 +5,6 @@ LL | fn main() {} | ^ | = note: requested on the command line with `-W unused-crate-dependencies` - = help: remove unnecessary dependency `bar` warning: 1 warning emitted diff --git a/src/tools/clippy/clippy_lints/src/missing_doc.rs b/src/tools/clippy/clippy_lints/src/missing_doc.rs index fc0483a929a..5816a95dceb 100644 --- a/src/tools/clippy/clippy_lints/src/missing_doc.rs +++ b/src/tools/clippy/clippy_lints/src/missing_doc.rs @@ -10,7 +10,7 @@ use clippy_utils::diagnostics::span_lint; use rustc_ast::ast; use rustc_hir as hir; use rustc_lint::{LateContext, LateLintPass, LintContext}; -use rustc_middle::ty; +use rustc_middle::ty::{self, DefIdTree}; use rustc_session::{declare_tool_lint, impl_lint_pass}; use rustc_span::def_id::CRATE_DEF_ID; use rustc_span::source_map::Span; @@ -114,8 +114,8 @@ impl<'tcx> LateLintPass<'tcx> for MissingDoc { hir::ItemKind::Fn(..) => { // ignore main() if it.ident.name == sym::main { - let def_key = cx.tcx.hir().def_key(it.def_id); - if def_key.parent == Some(hir::def_id::CRATE_DEF_INDEX) { + let at_root = cx.tcx.local_parent(it.def_id) == Some(CRATE_DEF_ID); + if at_root { return; } } |
