diff options
| author | Manish Goregaokar <manishsmail@gmail.com> | 2020-07-11 08:53:27 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-11 08:53:27 -0700 |
| commit | aa04ffb61a3e563eb4555057f897191f3ab49386 (patch) | |
| tree | 299d78ed159ea2ce569933b2e63a55cb99e974cd | |
| parent | 6204a73efa9cc2f669186531849a656978c2f28c (diff) | |
| parent | f5de23b5c132db8064c98e0e20ef216d6defdc44 (diff) | |
Rollup merge of #74240 - da-x:fix-74081, r=Manishearth
Fix #74081 and add the test case from #74236
| -rw-r--r-- | src/librustc_middle/ty/print/pretty.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-74236/auxiliary/dep.rs | 8 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-74236/main.rs | 9 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-74236/main.stderr | 11 |
4 files changed, 29 insertions, 1 deletions
diff --git a/src/librustc_middle/ty/print/pretty.rs b/src/librustc_middle/ty/print/pretty.rs index 9dda208b5a0..3809c8d245b 100644 --- a/src/librustc_middle/ty/print/pretty.rs +++ b/src/librustc_middle/ty/print/pretty.rs @@ -393,7 +393,7 @@ pub trait PrettyPrinter<'tcx>: .tcx() .item_children(visible_parent) .iter() - .find(|child| child.res.def_id() == def_id) + .find(|child| child.res.opt_def_id() == Some(def_id)) .map(|child| child.ident.name); if let Some(reexport) = reexport { *name = reexport; diff --git a/src/test/ui/issues/issue-74236/auxiliary/dep.rs b/src/test/ui/issues/issue-74236/auxiliary/dep.rs new file mode 100644 index 00000000000..45f2601d307 --- /dev/null +++ b/src/test/ui/issues/issue-74236/auxiliary/dep.rs @@ -0,0 +1,8 @@ +// edition:2018 + +mod private { pub struct Pub; } + +// Reexport built-in attribute without a DefId (requires Rust 2018). +pub use cfg_attr as attr; +// This export needs to be after the built-in attribute to trigger the bug. +pub use private::Pub as Renamed; diff --git a/src/test/ui/issues/issue-74236/main.rs b/src/test/ui/issues/issue-74236/main.rs new file mode 100644 index 00000000000..daa7cfcf9a1 --- /dev/null +++ b/src/test/ui/issues/issue-74236/main.rs @@ -0,0 +1,9 @@ +// edition:2018 +// aux-build:dep.rs +// compile-flags:--extern dep + +fn main() { + // Trigger an error that will print the path of dep::private::Pub (as "dep::Renamed"). + let () = dep::Renamed; + //~^ ERROR mismatched types +} diff --git a/src/test/ui/issues/issue-74236/main.stderr b/src/test/ui/issues/issue-74236/main.stderr new file mode 100644 index 00000000000..51d4833e014 --- /dev/null +++ b/src/test/ui/issues/issue-74236/main.stderr @@ -0,0 +1,11 @@ +error[E0308]: mismatched types + --> $DIR/main.rs:7:9 + | +LL | let () = dep::Renamed; + | ^^ ------------ this expression has type `dep::Renamed` + | | + | expected struct `dep::Renamed`, found `()` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0308`. |
