about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/rustdoc/attributes.rs10
-rw-r--r--src/test/rustdoc/decl_macro.rs17
-rw-r--r--src/test/rustdoc/item-hide-threshold.rs155
-rw-r--r--src/test/rustdoc/trait-attributes.rs6
-rw-r--r--src/test/ui/assign-imm-local-twice.rs2
-rw-r--r--src/test/ui/assign-imm-local-twice.stderr2
-rw-r--r--src/test/ui/async-await/issue-61452.stderr2
-rw-r--r--src/test/ui/borrowck/borrowck-asm.stderr4
-rw-r--r--src/test/ui/borrowck/borrowck-match-binding-is-assignment.stderr10
-rw-r--r--src/test/ui/borrowck/immutable-arg.stderr2
-rw-r--r--src/test/ui/borrowck/issue-45199.rs6
-rw-r--r--src/test/ui/borrowck/issue-45199.stderr6
-rw-r--r--src/test/ui/command-line-diagnostics.stderr2
-rw-r--r--src/test/ui/feature-gates/thread-local-const-init.rs4
-rw-r--r--src/test/ui/feature-gates/thread-local-const-init.stderr13
-rw-r--r--src/test/ui/lifetimes/issue-83753-invalid-associated-type-supertrait-hrtb.rs8
-rw-r--r--src/test/ui/lifetimes/issue-83753-invalid-associated-type-supertrait-hrtb.stderr9
-rw-r--r--src/test/ui/lifetimes/issue-83907-invalid-fn-like-path.rs7
-rw-r--r--src/test/ui/lifetimes/issue-83907-invalid-fn-like-path.stderr17
-rw-r--r--src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-2.nll.stderr2
-rw-r--r--src/test/ui/lifetimes/lifetime-errors/liveness-assign-imm-local-notes.stderr8
-rw-r--r--src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-loop.rs2
-rw-r--r--src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-loop.stderr2
-rw-r--r--src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-op-eq.rs2
-rw-r--r--src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-op-eq.stderr2
-rw-r--r--src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-drop.rs2
-rw-r--r--src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-drop.stderr2
-rw-r--r--src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-init.rs2
-rw-r--r--src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-init.stderr2
-rw-r--r--src/test/ui/llvm-asm/llvm-asm-out-assign-imm.stderr2
-rw-r--r--src/test/ui/mut/mut-pattern-internal-mutability.stderr2
-rw-r--r--src/test/ui/pattern/move-ref-patterns/borrowck-move-ref-pattern.stderr4
-rw-r--r--src/test/ui/resolve/auxiliary/issue-80079.rs18
-rw-r--r--src/test/ui/resolve/issue-80079.rs12
-rw-r--r--src/test/ui/resolve/issue-80079.stderr9
35 files changed, 312 insertions, 43 deletions
diff --git a/src/test/rustdoc/attributes.rs b/src/test/rustdoc/attributes.rs
index 54c5939f908..51cd4a6cbfd 100644
--- a/src/test/rustdoc/attributes.rs
+++ b/src/test/rustdoc/attributes.rs
@@ -1,21 +1,21 @@
 #![crate_name = "foo"]
 
-// @has foo/fn.f.html '//*[@class="docblock attributes"]' '#[no_mangle]'
+// @has foo/fn.f.html '//*[@class="rust fn"]' '#[no_mangle]'
 #[no_mangle]
 pub extern "C" fn f() {}
 
-// @has foo/fn.g.html '//*[@class="docblock attributes"]' '#[export_name = "bar"]'
+// @has foo/fn.g.html '//*[@class="rust fn"]' '#[export_name = "bar"]'
 #[export_name = "bar"]
 pub extern "C" fn g() {}
 
-// @matches foo/enum.Foo.html '//*[@class="docblock attributes top-attr"]' \
-//      '(?m)\A#\[repr\(i64\)\]\n#\[must_use\]\Z'
+// @matches foo/enum.Foo.html '//*[@class="rust enum"]' \
+//      '#\[repr\(i64\)\]\n#\[must_use\]'
 #[repr(i64)]
 #[must_use]
 pub enum Foo {
     Bar,
 }
 
-// @has foo/struct.Repr.html '//*[@class="docblock attributes top-attr"]' '#[repr(C, align(8))]'
+// @has foo/struct.Repr.html '//*[@class="docblock type-decl"]' '#[repr(C, align(8))]'
 #[repr(C, align(8))]
 pub struct Repr;
diff --git a/src/test/rustdoc/decl_macro.rs b/src/test/rustdoc/decl_macro.rs
index e48a56f906c..ede3f455a20 100644
--- a/src/test/rustdoc/decl_macro.rs
+++ b/src/test/rustdoc/decl_macro.rs
@@ -1,3 +1,5 @@
+// compile-flags: --document-private-items
+
 #![feature(decl_macro)]
 
 // @has decl_macro/macro.my_macro.html //pre 'pub macro my_macro() {'
@@ -37,3 +39,18 @@ pub macro my_macro_multi {
 pub macro by_example_single {
     ($foo:expr) => {}
 }
+
+mod a {
+    mod b {
+        // @has decl_macro/a/b/macro.by_example_vis.html //pre 'pub(super) macro by_example_vis($foo:expr) {'
+        pub(in super) macro by_example_vis {
+            ($foo:expr) => {}
+        }
+        mod c {
+            // @has decl_macro/a/b/c/macro.by_example_vis_named.html //pre 'pub(in a) macro by_example_vis_named($foo:expr) {'
+            pub(in a) macro by_example_vis_named {
+                ($foo:expr) => {}
+            }
+        }
+    }
+}
diff --git a/src/test/rustdoc/item-hide-threshold.rs b/src/test/rustdoc/item-hide-threshold.rs
new file mode 100644
index 00000000000..616eef95662
--- /dev/null
+++ b/src/test/rustdoc/item-hide-threshold.rs
@@ -0,0 +1,155 @@
+#![allow(unused)]
+
+// @has 'item_hide_threshold/struct.PubStruct.html'
+// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 0
+pub struct PubStruct {
+    pub a: usize,
+    pub b: usize,
+}
+
+// @has 'item_hide_threshold/struct.BigPubStruct.html'
+// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 1
+// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show fields'
+pub struct BigPubStruct {
+    pub a: usize,
+    pub b: usize,
+    pub c: usize,
+    pub d: usize,
+    pub e: usize,
+    pub f: usize,
+    pub g: usize,
+    pub h: usize,
+    pub i: usize,
+    pub j: usize,
+    pub k: usize,
+    pub l: usize,
+    pub m: usize,
+}
+
+// @has 'item_hide_threshold/union.BigUnion.html'
+// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 1
+// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show fields'
+pub union BigUnion {
+    pub a: usize,
+    pub b: usize,
+    pub c: usize,
+    pub d: usize,
+    pub e: usize,
+    pub f: usize,
+    pub g: usize,
+    pub h: usize,
+    pub i: usize,
+    pub j: usize,
+    pub k: usize,
+    pub l: usize,
+    pub m: usize,
+}
+
+// @has 'item_hide_threshold/union.Union.html'
+// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 0
+pub union Union {
+    pub a: usize,
+    pub b: usize,
+    pub c: usize,
+}
+
+// @has 'item_hide_threshold/struct.PrivStruct.html'
+// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 0
+// @has - '//div[@class="docblock type-decl"]' 'fields omitted'
+pub struct PrivStruct {
+    a: usize,
+    b: usize,
+}
+
+// @has 'item_hide_threshold/enum.Enum.html'
+// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 0
+pub enum Enum {
+    A, B, C,
+    D {
+        a: u8,
+        b: u8
+    }
+}
+
+// @has 'item_hide_threshold/enum.LargeEnum.html'
+// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 1
+// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show variants'
+pub enum LargeEnum {
+    A, B, C, D, E, F(u8), G, H, I, J, K, L, M
+}
+
+// @has 'item_hide_threshold/trait.Trait.html'
+// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 0
+pub trait Trait {
+    type A;
+    #[must_use]
+    fn foo();
+    fn bar();
+}
+
+// @has 'item_hide_threshold/trait.GinormousTrait.html'
+// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 1
+// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show associated items'
+pub trait GinormousTrait {
+    type A;
+    type B;
+    type C;
+    type D;
+    type E;
+    type F;
+    type G;
+    type H;
+    type I;
+    type J;
+    type K;
+    type L;
+    type M;
+    const N: usize = 1;
+    #[must_use]
+    fn foo();
+    fn bar();
+}
+
+// @has 'item_hide_threshold/trait.HugeTrait.html'
+// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 1
+// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show associated constants and methods'
+pub trait HugeTrait {
+    type A;
+    const M: usize = 1;
+    const N: usize = 1;
+    const O: usize = 1;
+    const P: usize = 1;
+    const Q: usize = 1;
+    const R: usize = 1;
+    const S: usize = 1;
+    const T: usize = 1;
+    const U: usize = 1;
+    const V: usize = 1;
+    const W: usize = 1;
+    const X: usize = 1;
+    #[must_use]
+    fn foo();
+    fn bar();
+}
+
+// @has 'item_hide_threshold/trait.BigTrait.html'
+// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 1
+// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show methods'
+pub trait BigTrait {
+    type A;
+    #[must_use]
+    fn foo();
+    fn bar();
+    fn baz();
+    fn quux();
+    fn frob();
+    fn greeble();
+    fn blap();
+    fn whoop();
+    fn pow();
+    fn bang();
+    fn oomph();
+    fn argh();
+    fn wap();
+    fn ouch();
+}
diff --git a/src/test/rustdoc/trait-attributes.rs b/src/test/rustdoc/trait-attributes.rs
index 2a103509ae1..2bb24a82193 100644
--- a/src/test/rustdoc/trait-attributes.rs
+++ b/src/test/rustdoc/trait-attributes.rs
@@ -2,7 +2,7 @@
 
 
 pub trait Foo {
-    // @has foo/trait.Foo.html '//h3[@id="tymethod.foo"]//span[@class="docblock attributes"]' '#[must_use]'
+    // @has foo/trait.Foo.html '//h3[@id="tymethod.foo"]//div[@class="code-attribute"]' '#[must_use]'
     #[must_use]
     fn foo();
 }
@@ -11,11 +11,11 @@ pub trait Foo {
 pub struct Bar;
 
 impl Bar {
-    // @has foo/struct.Bar.html '//h4[@id="method.bar"]//span[@class="docblock attributes"]' '#[must_use]'
+    // @has foo/struct.Bar.html '//h4[@id="method.bar"]//div[@class="code-attribute"]' '#[must_use]'
     #[must_use]
     pub fn bar() {}
 
-    // @has foo/struct.Bar.html '//h4[@id="method.bar2"]//span[@class="docblock attributes"]' '#[must_use]'
+    // @has foo/struct.Bar.html '//h4[@id="method.bar2"]//div[@class="code-attribute"]' '#[must_use]'
     #[must_use]
     pub fn bar2() {}
 }
diff --git a/src/test/ui/assign-imm-local-twice.rs b/src/test/ui/assign-imm-local-twice.rs
index c1c9bf62819..b50f6ab5deb 100644
--- a/src/test/ui/assign-imm-local-twice.rs
+++ b/src/test/ui/assign-imm-local-twice.rs
@@ -1,6 +1,6 @@
 fn test() {
     let v: isize;
-    //~^ HELP make this binding mutable
+    //~^ HELP consider making this binding mutable
     //~| SUGGESTION mut v
     v = 1; //~ NOTE first assignment
     println!("v={}", v);
diff --git a/src/test/ui/assign-imm-local-twice.stderr b/src/test/ui/assign-imm-local-twice.stderr
index df0f4c4d806..bba5d8dffe4 100644
--- a/src/test/ui/assign-imm-local-twice.stderr
+++ b/src/test/ui/assign-imm-local-twice.stderr
@@ -2,7 +2,7 @@ error[E0384]: cannot assign twice to immutable variable `v`
   --> $DIR/assign-imm-local-twice.rs:7:5
    |
 LL |     let v: isize;
-   |         - help: make this binding mutable: `mut v`
+   |         - help: consider making this binding mutable: `mut v`
 ...
 LL |     v = 1;
    |     ----- first assignment to `v`
diff --git a/src/test/ui/async-await/issue-61452.stderr b/src/test/ui/async-await/issue-61452.stderr
index 5eb4b548717..f2dec87baf0 100644
--- a/src/test/ui/async-await/issue-61452.stderr
+++ b/src/test/ui/async-await/issue-61452.stderr
@@ -13,7 +13,7 @@ LL | pub async fn g(x: usize) {
    |                -
    |                |
    |                first assignment to `x`
-   |                help: make this binding mutable: `mut x`
+   |                help: consider making this binding mutable: `mut x`
 LL |     x += 1;
    |     ^^^^^^ cannot assign twice to immutable variable
 
diff --git a/src/test/ui/borrowck/borrowck-asm.stderr b/src/test/ui/borrowck/borrowck-asm.stderr
index 3dccca78415..74cf5a55b70 100644
--- a/src/test/ui/borrowck/borrowck-asm.stderr
+++ b/src/test/ui/borrowck/borrowck-asm.stderr
@@ -29,7 +29,7 @@ LL |         let x = 3;
    |             -
    |             |
    |             first assignment to `x`
-   |             help: make this binding mutable: `mut x`
+   |             help: consider making this binding mutable: `mut x`
 LL |         unsafe {
 LL |             llvm_asm!("nop" : "=r"(x));
    |                                    ^ cannot assign twice to immutable variable
@@ -41,7 +41,7 @@ LL |         let x = 3;
    |             -
    |             |
    |             first assignment to `x`
-   |             help: make this binding mutable: `mut x`
+   |             help: consider making this binding mutable: `mut x`
 LL |         unsafe {
 LL |             llvm_asm!("nop" : "+r"(x));
    |                                    ^ cannot assign twice to immutable variable
diff --git a/src/test/ui/borrowck/borrowck-match-binding-is-assignment.stderr b/src/test/ui/borrowck/borrowck-match-binding-is-assignment.stderr
index 5661ca52cba..dd22d7e2e2e 100644
--- a/src/test/ui/borrowck/borrowck-match-binding-is-assignment.stderr
+++ b/src/test/ui/borrowck/borrowck-match-binding-is-assignment.stderr
@@ -5,7 +5,7 @@ LL |         x => {
    |         -
    |         |
    |         first assignment to `x`
-   |         help: make this binding mutable: `mut x`
+   |         help: consider making this binding mutable: `mut x`
 LL |             x += 1;
    |             ^^^^^^ cannot assign twice to immutable variable
 
@@ -16,7 +16,7 @@ LL |         E::Foo(x) => {
    |                -
    |                |
    |                first assignment to `x`
-   |                help: make this binding mutable: `mut x`
+   |                help: consider making this binding mutable: `mut x`
 LL |             x += 1;
    |             ^^^^^^ cannot assign twice to immutable variable
 
@@ -27,7 +27,7 @@ LL |         S { bar: x } => {
    |                  -
    |                  |
    |                  first assignment to `x`
-   |                  help: make this binding mutable: `mut x`
+   |                  help: consider making this binding mutable: `mut x`
 LL |             x += 1;
    |             ^^^^^^ cannot assign twice to immutable variable
 
@@ -38,7 +38,7 @@ LL |         (x,) => {
    |          -
    |          |
    |          first assignment to `x`
-   |          help: make this binding mutable: `mut x`
+   |          help: consider making this binding mutable: `mut x`
 LL |             x += 1;
    |             ^^^^^^ cannot assign twice to immutable variable
 
@@ -49,7 +49,7 @@ LL |         [x,_,_] => {
    |          -
    |          |
    |          first assignment to `x`
-   |          help: make this binding mutable: `mut x`
+   |          help: consider making this binding mutable: `mut x`
 LL |             x += 1;
    |             ^^^^^^ cannot assign twice to immutable variable
 
diff --git a/src/test/ui/borrowck/immutable-arg.stderr b/src/test/ui/borrowck/immutable-arg.stderr
index 7255ca327e7..bddb0633a0b 100644
--- a/src/test/ui/borrowck/immutable-arg.stderr
+++ b/src/test/ui/borrowck/immutable-arg.stderr
@@ -2,7 +2,7 @@ error[E0384]: cannot assign to immutable argument `_x`
   --> $DIR/immutable-arg.rs:2:5
    |
 LL | fn foo(_x: u32) {
-   |        -- help: make this binding mutable: `mut _x`
+   |        -- help: consider making this binding mutable: `mut _x`
 LL |     _x = 4;
    |     ^^^^^^ cannot assign to immutable argument
 
diff --git a/src/test/ui/borrowck/issue-45199.rs b/src/test/ui/borrowck/issue-45199.rs
index cbd45cbb619..ded46e56e34 100644
--- a/src/test/ui/borrowck/issue-45199.rs
+++ b/src/test/ui/borrowck/issue-45199.rs
@@ -1,6 +1,6 @@
 fn test_drop_replace() {
     let b: Box<isize>;
-    //~^ HELP make this binding mutable
+    //~^ HELP consider making this binding mutable
     //~| SUGGESTION mut b
     b = Box::new(1);    //~ NOTE first assignment
     b = Box::new(2);    //~ ERROR cannot assign twice to immutable variable `b`
@@ -9,13 +9,13 @@ fn test_drop_replace() {
 
 fn test_call() {
     let b = Box::new(1);    //~ NOTE first assignment
-                            //~| HELP make this binding mutable
+                            //~| HELP consider making this binding mutable
                             //~| SUGGESTION mut b
     b = Box::new(2);        //~ ERROR cannot assign twice to immutable variable `b`
                             //~| NOTE cannot assign twice to immutable
 }
 
-fn test_args(b: Box<i32>) {  //~ HELP make this binding mutable
+fn test_args(b: Box<i32>) {  //~ HELP consider making this binding mutable
                                 //~| SUGGESTION mut b
     b = Box::new(2);            //~ ERROR cannot assign to immutable argument `b`
                                 //~| NOTE cannot assign to immutable argument
diff --git a/src/test/ui/borrowck/issue-45199.stderr b/src/test/ui/borrowck/issue-45199.stderr
index 83b634051bb..47aa3090827 100644
--- a/src/test/ui/borrowck/issue-45199.stderr
+++ b/src/test/ui/borrowck/issue-45199.stderr
@@ -2,7 +2,7 @@ error[E0384]: cannot assign twice to immutable variable `b`
   --> $DIR/issue-45199.rs:6:5
    |
 LL |     let b: Box<isize>;
-   |         - help: make this binding mutable: `mut b`
+   |         - help: consider making this binding mutable: `mut b`
 ...
 LL |     b = Box::new(1);
    |     - first assignment to `b`
@@ -16,7 +16,7 @@ LL |     let b = Box::new(1);
    |         -
    |         |
    |         first assignment to `b`
-   |         help: make this binding mutable: `mut b`
+   |         help: consider making this binding mutable: `mut b`
 ...
 LL |     b = Box::new(2);
    |     ^ cannot assign twice to immutable variable
@@ -25,7 +25,7 @@ error[E0384]: cannot assign to immutable argument `b`
   --> $DIR/issue-45199.rs:20:5
    |
 LL | fn test_args(b: Box<i32>) {
-   |              - help: make this binding mutable: `mut b`
+   |              - help: consider making this binding mutable: `mut b`
 LL |
 LL |     b = Box::new(2);
    |     ^ cannot assign to immutable argument
diff --git a/src/test/ui/command-line-diagnostics.stderr b/src/test/ui/command-line-diagnostics.stderr
index b3f8d8a643f..6223ad880d6 100644
--- a/src/test/ui/command-line-diagnostics.stderr
+++ b/src/test/ui/command-line-diagnostics.stderr
@@ -5,7 +5,7 @@ LL |     let x = 42;
    |         -
    |         |
    |         first assignment to `x`
-   |         help: make this binding mutable: `mut x`
+   |         help: consider making this binding mutable: `mut x`
 LL |     x = 43;
    |     ^^^^^^ cannot assign twice to immutable variable
 
diff --git a/src/test/ui/feature-gates/thread-local-const-init.rs b/src/test/ui/feature-gates/thread-local-const-init.rs
new file mode 100644
index 00000000000..6584ffa7cf9
--- /dev/null
+++ b/src/test/ui/feature-gates/thread-local-const-init.rs
@@ -0,0 +1,4 @@
+thread_local!(static X: u32 = const { 0 });
+//~^ ERROR: use of unstable library feature 'thread_local_const_init'
+
+fn main() {}
diff --git a/src/test/ui/feature-gates/thread-local-const-init.stderr b/src/test/ui/feature-gates/thread-local-const-init.stderr
new file mode 100644
index 00000000000..a35b18a9c29
--- /dev/null
+++ b/src/test/ui/feature-gates/thread-local-const-init.stderr
@@ -0,0 +1,13 @@
+error[E0658]: use of unstable library feature 'thread_local_const_init'
+  --> $DIR/thread-local-const-init.rs:1:1
+   |
+LL | thread_local!(static X: u32 = const { 0 });
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: see issue #84223 <https://github.com/rust-lang/rust/issues/84223> for more information
+   = help: add `#![feature(thread_local_const_init)]` to the crate attributes to enable
+   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/lifetimes/issue-83753-invalid-associated-type-supertrait-hrtb.rs b/src/test/ui/lifetimes/issue-83753-invalid-associated-type-supertrait-hrtb.rs
new file mode 100644
index 00000000000..7f0ea730dd3
--- /dev/null
+++ b/src/test/ui/lifetimes/issue-83753-invalid-associated-type-supertrait-hrtb.rs
@@ -0,0 +1,8 @@
+// check-fail
+
+struct Foo {}
+impl Foo {
+    fn bar(foo: Foo<Target = usize>) {}
+    //~^ associated type bindings are not allowed here
+}
+fn main() {}
diff --git a/src/test/ui/lifetimes/issue-83753-invalid-associated-type-supertrait-hrtb.stderr b/src/test/ui/lifetimes/issue-83753-invalid-associated-type-supertrait-hrtb.stderr
new file mode 100644
index 00000000000..f7bdee6336e
--- /dev/null
+++ b/src/test/ui/lifetimes/issue-83753-invalid-associated-type-supertrait-hrtb.stderr
@@ -0,0 +1,9 @@
+error[E0229]: associated type bindings are not allowed here
+  --> $DIR/issue-83753-invalid-associated-type-supertrait-hrtb.rs:5:21
+   |
+LL |     fn bar(foo: Foo<Target = usize>) {}
+   |                     ^^^^^^^^^^^^^^ associated type not allowed here
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0229`.
diff --git a/src/test/ui/lifetimes/issue-83907-invalid-fn-like-path.rs b/src/test/ui/lifetimes/issue-83907-invalid-fn-like-path.rs
new file mode 100644
index 00000000000..604687ce711
--- /dev/null
+++ b/src/test/ui/lifetimes/issue-83907-invalid-fn-like-path.rs
@@ -0,0 +1,7 @@
+// check-fail
+
+static STATIC_VAR_FIVE: &One();
+//~^ cannot find type
+//~| free static item without body
+
+fn main() {}
diff --git a/src/test/ui/lifetimes/issue-83907-invalid-fn-like-path.stderr b/src/test/ui/lifetimes/issue-83907-invalid-fn-like-path.stderr
new file mode 100644
index 00000000000..e57933da558
--- /dev/null
+++ b/src/test/ui/lifetimes/issue-83907-invalid-fn-like-path.stderr
@@ -0,0 +1,17 @@
+error: free static item without body
+  --> $DIR/issue-83907-invalid-fn-like-path.rs:3:1
+   |
+LL | static STATIC_VAR_FIVE: &One();
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
+   |                               |
+   |                               help: provide a definition for the static: `= <expr>;`
+
+error[E0412]: cannot find type `One` in this scope
+  --> $DIR/issue-83907-invalid-fn-like-path.rs:3:26
+   |
+LL | static STATIC_VAR_FIVE: &One();
+   |                          ^^^ not found in this scope
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0412`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-2.nll.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-2.nll.stderr
index 5751c319489..bbd62902d9f 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-2.nll.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-2.nll.stderr
@@ -12,7 +12,7 @@ error[E0384]: cannot assign to immutable argument `y`
   --> $DIR/ex3-both-anon-regions-one-is-struct-2.rs:4:5
    |
 LL | fn foo(mut x: Ref, y: &u32) {
-   |                    - help: make this binding mutable: `mut y`
+   |                    - help: consider making this binding mutable: `mut y`
 LL |     y = x.b;
    |     ^^^^^^^ cannot assign to immutable argument
 
diff --git a/src/test/ui/lifetimes/lifetime-errors/liveness-assign-imm-local-notes.stderr b/src/test/ui/lifetimes/lifetime-errors/liveness-assign-imm-local-notes.stderr
index c646912d3b6..b47a47d631e 100644
--- a/src/test/ui/lifetimes/lifetime-errors/liveness-assign-imm-local-notes.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/liveness-assign-imm-local-notes.stderr
@@ -2,7 +2,7 @@ error[E0384]: cannot assign twice to immutable variable `x`
   --> $DIR/liveness-assign-imm-local-notes.rs:10:9
    |
 LL |     let x;
-   |         - help: make this binding mutable: `mut x`
+   |         - help: consider making this binding mutable: `mut x`
 ...
 LL |         x = 2;
    |         ----- first assignment to `x`
@@ -13,7 +13,7 @@ error[E0384]: cannot assign twice to immutable variable `x`
   --> $DIR/liveness-assign-imm-local-notes.rs:21:13
    |
 LL |         let x;
-   |             - help: make this binding mutable: `mut x`
+   |             - help: consider making this binding mutable: `mut x`
 ...
 LL |             x = 2;
    |             ----- first assignment to `x`
@@ -24,7 +24,7 @@ error[E0384]: cannot assign twice to immutable variable `x`
   --> $DIR/liveness-assign-imm-local-notes.rs:30:13
    |
 LL |     let x;
-   |         - help: make this binding mutable: `mut x`
+   |         - help: consider making this binding mutable: `mut x`
 ...
 LL |             x = 1;
    |             ^^^^^ cannot assign twice to immutable variable
@@ -33,7 +33,7 @@ error[E0384]: cannot assign twice to immutable variable `x`
   --> $DIR/liveness-assign-imm-local-notes.rs:32:13
    |
 LL |     let x;
-   |         - help: make this binding mutable: `mut x`
+   |         - help: consider making this binding mutable: `mut x`
 ...
 LL |             x = 1;
    |             ----- first assignment to `x`
diff --git a/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-loop.rs b/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-loop.rs
index c9e1851b9a9..08911c5bde7 100644
--- a/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-loop.rs
+++ b/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-loop.rs
@@ -1,6 +1,6 @@
 fn test() {
     let v: isize;
-    //~^ HELP make this binding mutable
+    //~^ HELP consider making this binding mutable
     //~| SUGGESTION mut v
     loop {
         v = 1; //~ ERROR cannot assign twice to immutable variable `v`
diff --git a/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-loop.stderr b/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-loop.stderr
index 69dff734ee4..66cdce7dacf 100644
--- a/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-loop.stderr
+++ b/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-loop.stderr
@@ -2,7 +2,7 @@ error[E0384]: cannot assign twice to immutable variable `v`
   --> $DIR/liveness-assign-imm-local-in-loop.rs:6:9
    |
 LL |     let v: isize;
-   |         - help: make this binding mutable: `mut v`
+   |         - help: consider making this binding mutable: `mut v`
 ...
 LL |         v = 1;
    |         ^^^^^ cannot assign twice to immutable variable
diff --git a/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-op-eq.rs b/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-op-eq.rs
index f24f7d2bcfc..1752d969086 100644
--- a/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-op-eq.rs
+++ b/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-op-eq.rs
@@ -1,6 +1,6 @@
 fn test() {
     let v: isize;
-    //~^ HELP make this binding mutable
+    //~^ HELP consider making this binding mutable
     //~| SUGGESTION mut v
     v = 2;  //~ NOTE first assignment
     v += 1; //~ ERROR cannot assign twice to immutable variable `v`
diff --git a/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-op-eq.stderr b/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-op-eq.stderr
index 182958dd492..5db9539cbf1 100644
--- a/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-op-eq.stderr
+++ b/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-in-op-eq.stderr
@@ -2,7 +2,7 @@ error[E0384]: cannot assign twice to immutable variable `v`
   --> $DIR/liveness-assign-imm-local-in-op-eq.rs:6:5
    |
 LL |     let v: isize;
-   |         - help: make this binding mutable: `mut v`
+   |         - help: consider making this binding mutable: `mut v`
 ...
 LL |     v = 2;
    |     ----- first assignment to `v`
diff --git a/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-drop.rs b/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-drop.rs
index 8963e32717e..c9b16e43910 100644
--- a/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-drop.rs
+++ b/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-drop.rs
@@ -1,6 +1,6 @@
 fn test() {
     let b = Box::new(1); //~ NOTE first assignment
-                         //~| HELP make this binding mutable
+                         //~| HELP consider making this binding mutable
                          //~| SUGGESTION mut b
     drop(b);
     b = Box::new(2); //~ ERROR cannot assign twice to immutable variable `b`
diff --git a/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-drop.stderr b/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-drop.stderr
index 7c4af624b27..bb7e7e27a4c 100644
--- a/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-drop.stderr
+++ b/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-drop.stderr
@@ -5,7 +5,7 @@ LL |     let b = Box::new(1);
    |         -
    |         |
    |         first assignment to `b`
-   |         help: make this binding mutable: `mut b`
+   |         help: consider making this binding mutable: `mut b`
 ...
 LL |     b = Box::new(2);
    |     ^ cannot assign twice to immutable variable
diff --git a/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-init.rs b/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-init.rs
index 4ab222af8d0..4bb2db27a16 100644
--- a/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-init.rs
+++ b/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-init.rs
@@ -1,6 +1,6 @@
 fn test() {
     let v: isize = 1; //~ NOTE first assignment
-                      //~| HELP make this binding mutable
+                      //~| HELP consider making this binding mutable
                       //~| SUGGESTION mut v
     v.clone();
     v = 2; //~ ERROR cannot assign twice to immutable variable `v`
diff --git a/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-init.stderr b/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-init.stderr
index 6f5d5574877..80458a70a01 100644
--- a/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-init.stderr
+++ b/src/test/ui/liveness/liveness-assign/liveness-assign-imm-local-with-init.stderr
@@ -5,7 +5,7 @@ LL |     let v: isize = 1;
    |         -
    |         |
    |         first assignment to `v`
-   |         help: make this binding mutable: `mut v`
+   |         help: consider making this binding mutable: `mut v`
 ...
 LL |     v = 2;
    |     ^^^^^ cannot assign twice to immutable variable
diff --git a/src/test/ui/llvm-asm/llvm-asm-out-assign-imm.stderr b/src/test/ui/llvm-asm/llvm-asm-out-assign-imm.stderr
index 9b0aa6be1e9..3e5893f68b6 100644
--- a/src/test/ui/llvm-asm/llvm-asm-out-assign-imm.stderr
+++ b/src/test/ui/llvm-asm/llvm-asm-out-assign-imm.stderr
@@ -2,7 +2,7 @@ error[E0384]: cannot assign twice to immutable variable `x`
   --> $DIR/llvm-asm-out-assign-imm.rs:25:39
    |
 LL |     let x: isize;
-   |         - help: make this binding mutable: `mut x`
+   |         - help: consider making this binding mutable: `mut x`
 LL |     x = 1;
    |     ----- first assignment to `x`
 ...
diff --git a/src/test/ui/mut/mut-pattern-internal-mutability.stderr b/src/test/ui/mut/mut-pattern-internal-mutability.stderr
index eaa33453a75..6583546aa5c 100644
--- a/src/test/ui/mut/mut-pattern-internal-mutability.stderr
+++ b/src/test/ui/mut/mut-pattern-internal-mutability.stderr
@@ -5,7 +5,7 @@ LL |     let &mut x = foo;
    |              -
    |              |
    |              first assignment to `x`
-   |              help: make this binding mutable: `mut x`
+   |              help: consider making this binding mutable: `mut x`
 LL |     x += 1;
    |     ^^^^^^ cannot assign twice to immutable variable
 
diff --git a/src/test/ui/pattern/move-ref-patterns/borrowck-move-ref-pattern.stderr b/src/test/ui/pattern/move-ref-patterns/borrowck-move-ref-pattern.stderr
index 285c203f382..d0726f05cc3 100644
--- a/src/test/ui/pattern/move-ref-patterns/borrowck-move-ref-pattern.stderr
+++ b/src/test/ui/pattern/move-ref-patterns/borrowck-move-ref-pattern.stderr
@@ -16,7 +16,7 @@ LL |     let [ref _x0_hold, _x1, ref xs_hold @ ..] = arr;
    |                        ---
    |                        |
    |                        first assignment to `_x1`
-   |                        help: make this binding mutable: `mut _x1`
+   |                        help: consider making this binding mutable: `mut _x1`
 LL |     _x1 = U;
    |     ^^^^^^^ cannot assign twice to immutable variable
 
@@ -74,7 +74,7 @@ LL |     let (ref _x0, _x1, ref _x2, ..) = tup;
    |                   ---
    |                   |
    |                   first assignment to `_x1`
-   |                   help: make this binding mutable: `mut _x1`
+   |                   help: consider making this binding mutable: `mut _x1`
 LL |     _x1 = U;
    |     ^^^^^^^ cannot assign twice to immutable variable
 
diff --git a/src/test/ui/resolve/auxiliary/issue-80079.rs b/src/test/ui/resolve/auxiliary/issue-80079.rs
new file mode 100644
index 00000000000..190ca75aba8
--- /dev/null
+++ b/src/test/ui/resolve/auxiliary/issue-80079.rs
@@ -0,0 +1,18 @@
+#![crate_type = "lib"]
+
+pub mod public {
+    use private_import;
+
+    // should not be suggested since it is private
+    struct Foo;
+
+    mod private_module {
+        // should not be suggested since it is private
+        pub struct Foo;
+    }
+}
+
+mod private_import {
+    // should not be suggested since it is private
+    pub struct Foo;
+}
diff --git a/src/test/ui/resolve/issue-80079.rs b/src/test/ui/resolve/issue-80079.rs
new file mode 100644
index 00000000000..4795ed062c8
--- /dev/null
+++ b/src/test/ui/resolve/issue-80079.rs
@@ -0,0 +1,12 @@
+// aux-build:issue-80079.rs
+
+// using a module from another crate should not cause errors to suggest private
+// items in that module
+
+extern crate issue_80079;
+
+use issue_80079::public;
+
+fn main() {
+    let _ = Foo; //~ ERROR cannot find value `Foo` in this scope
+}
diff --git a/src/test/ui/resolve/issue-80079.stderr b/src/test/ui/resolve/issue-80079.stderr
new file mode 100644
index 00000000000..93e8c0341a1
--- /dev/null
+++ b/src/test/ui/resolve/issue-80079.stderr
@@ -0,0 +1,9 @@
+error[E0425]: cannot find value `Foo` in this scope
+  --> $DIR/issue-80079.rs:11:13
+   |
+LL |     let _ = Foo;
+   |             ^^^ not found in this scope
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0425`.