From 526a398c77e7be8b437ea4b7cae06e0f3a026155 Mon Sep 17 00:00:00 2001 From: Tatsuyuki Ishi Date: Mon, 4 Feb 2019 18:04:33 +0900 Subject: [PATCH 1/2] Fix #58101 --- src/librustc/middle/stability.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/librustc/middle/stability.rs b/src/librustc/middle/stability.rs index 3717ee7143c..c726885337e 100644 --- a/src/librustc/middle/stability.rs +++ b/src/librustc/middle/stability.rs @@ -765,7 +765,9 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { } } EvalResult::Unmarked => { - span_bug!(span, "encountered unmarked API: {:?}", def_id); + // The API could be uncallable for other reasons, for example when a private module + // was referenced. + self.sess.delay_span_bug(span, &format!("encountered unmarked API: {:?}", def_id)); } } } From 652f2c753aed97261f5d988f0a2b50aa6508964c Mon Sep 17 00:00:00 2001 From: ishitatsuyuki Date: Mon, 4 Feb 2019 19:26:46 +0900 Subject: [PATCH 2/2] Add test --- src/test/ui/stability-in-private-module.rs | 4 ++++ src/test/ui/stability-in-private-module.stderr | 9 +++++++++ 2 files changed, 13 insertions(+) create mode 100644 src/test/ui/stability-in-private-module.rs create mode 100644 src/test/ui/stability-in-private-module.stderr diff --git a/src/test/ui/stability-in-private-module.rs b/src/test/ui/stability-in-private-module.rs new file mode 100644 index 00000000000..f12e9198b0d --- /dev/null +++ b/src/test/ui/stability-in-private-module.rs @@ -0,0 +1,4 @@ +fn main() { + let _ = std::thread::thread_info::current_thread(); + //~^ERROR module `thread_info` is private +} diff --git a/src/test/ui/stability-in-private-module.stderr b/src/test/ui/stability-in-private-module.stderr new file mode 100644 index 00000000000..c3edd62a15e --- /dev/null +++ b/src/test/ui/stability-in-private-module.stderr @@ -0,0 +1,9 @@ +error[E0603]: module `thread_info` is private + --> $DIR/stability-in-private-module.rs:2:26 + | +LL | let _ = std::thread::thread_info::current_thread(); + | ^^^^^^^^^^^ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0603`.