about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2021-03-30 11:44:36 +0000
committerbors <bors@rust-lang.org>2021-03-30 11:44:36 +0000
commit16156fb2787f745e57504197bd7fe38b69c6cbea (patch)
tree8629975b2f2fb968c84444d7090f746f0a7a98e2 /src
parent689e8470ffa7aeca17cfee428704a4d6c4148c11 (diff)
parent5b467787b625d83d5cf210e70d56487e53ce4255 (diff)
downloadrust-16156fb2787f745e57504197bd7fe38b69c6cbea.tar.gz
rust-16156fb2787f745e57504197bd7fe38b69c6cbea.zip
Auto merge of #83674 - Dylan-DPC:rollup-bcuc1hl, r=Dylan-DPC
Rollup of 7 pull requests

Successful merges:

 - #83568 (update comment at MaybeUninit::uninit_array)
 - #83571 (Constantify some slice methods)
 - #83579 (Improve pointer arithmetic docs)
 - #83645 (Wrap non-pre code blocks)
 - #83656 (Add a regression test for issue-82865)
 - #83662 (Update books)
 - #83667 (Suggest box/pin/arc ing receiver on method calls)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
Diffstat (limited to 'src')
m---------src/doc/book0
m---------src/doc/embedded-book0
m---------src/doc/reference0
m---------src/doc/rust-by-example0
m---------src/doc/rustc-dev-guide0
-rw-r--r--src/librustdoc/html/static/rustdoc.css4
-rw-r--r--src/test/ui/async-await/pin-needed-to-poll.rs47
-rw-r--r--src/test/ui/async-await/pin-needed-to-poll.stderr22
-rw-r--r--src/test/ui/copy-a-resource.stderr8
-rw-r--r--src/test/ui/derives/derive-assoc-type-not-impl.stderr8
-rw-r--r--src/test/ui/issues/issue-2823.stderr8
-rw-r--r--src/test/ui/issues/issue-69725.stderr8
-rw-r--r--src/test/ui/non-copyable-void.stderr8
-rw-r--r--src/test/ui/noncopyable-class.stderr8
-rw-r--r--src/test/ui/resolve/issue-82865.rs13
-rw-r--r--src/test/ui/resolve/issue-82865.stderr21
-rw-r--r--src/test/ui/self/point-at-arbitrary-self-type-method.stderr5
-rw-r--r--src/test/ui/self/point-at-arbitrary-self-type-trait-method.stderr5
-rw-r--r--src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature.nll.stderr11
-rw-r--r--src/test/ui/traits/negative-impls/explicitly-unimplemented-error-message.stderr8
-rw-r--r--src/test/ui/union/union-derive-clone.stderr8
-rw-r--r--src/test/ui/unique-object-noncopyable.stderr8
-rw-r--r--src/test/ui/unique-pinned-nocopy.stderr8
23 files changed, 116 insertions, 92 deletions
diff --git a/src/doc/book b/src/doc/book
-Subproject fc2f690fc16592abbead2360cfc0a42f5df7805
+Subproject b54090a99ec7c4b46a5203a9c927fdbc311bb1f
diff --git a/src/doc/embedded-book b/src/doc/embedded-book
-Subproject f61685755fad7d3b88b4645adfbf461d500563a
+Subproject d3f2ace94d51610cf3e3c265705bb8416d37f8e
diff --git a/src/doc/reference b/src/doc/reference
-Subproject d10a0af8dca25d9d548ca6a369fd66ad06acb3c
+Subproject fd97729e2d82f8b08d68a31c9bfdf0c37a7fd54
diff --git a/src/doc/rust-by-example b/src/doc/rust-by-example
-Subproject eead22c6c030fa4f3a167d1798658c341199e2a
+Subproject 29d91f591c90dd18fdca6d23f1a9caf9c139d0d
diff --git a/src/doc/rustc-dev-guide b/src/doc/rustc-dev-guide
-Subproject 67ebd4b55dba44edfc351621cef6e5e758169c5
+Subproject 0687daac28939c476df51778f5a1d1aff1a3fdd
diff --git a/src/librustdoc/html/static/rustdoc.css b/src/librustdoc/html/static/rustdoc.css
index 6c90fd7c9ee..f5a034a0d24 100644
--- a/src/librustdoc/html/static/rustdoc.css
+++ b/src/librustdoc/html/static/rustdoc.css
@@ -424,7 +424,9 @@ nav.sub {
 	text-overflow: ellipsis;
 	margin: 0;
 }
-.docblock-short code {
+/* Wrap non-pre code blocks (`text`) but not (```text```). */
+.docblock > :not(pre) > code,
+.docblock-short > :not(pre) > code {
 	white-space: pre-wrap;
 }
 
diff --git a/src/test/ui/async-await/pin-needed-to-poll.rs b/src/test/ui/async-await/pin-needed-to-poll.rs
new file mode 100644
index 00000000000..0d1fe684f60
--- /dev/null
+++ b/src/test/ui/async-await/pin-needed-to-poll.rs
@@ -0,0 +1,47 @@
+use std::{
+    future::Future,
+    pin::Pin,
+    task::{Context, Poll},
+};
+
+struct Sleep;
+
+impl Future for Sleep {
+    type Output = ();
+
+    fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
+        Poll::Ready(())
+    }
+}
+
+impl Drop for Sleep {
+    fn drop(&mut self) {}
+}
+
+fn sleep() -> Sleep {
+    Sleep
+}
+
+
+struct MyFuture {
+    sleep: Sleep,
+}
+
+impl MyFuture {
+    fn new() -> Self {
+        Self {
+            sleep: sleep(),
+        }
+    }
+}
+
+impl Future for MyFuture {
+    type Output = ();
+
+    fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
+        self.sleep.poll(cx)
+        //~^ ERROR no method named `poll` found for struct `Sleep` in the current scope
+    }
+}
+
+fn main() {}
diff --git a/src/test/ui/async-await/pin-needed-to-poll.stderr b/src/test/ui/async-await/pin-needed-to-poll.stderr
new file mode 100644
index 00000000000..0756a4d59c1
--- /dev/null
+++ b/src/test/ui/async-await/pin-needed-to-poll.stderr
@@ -0,0 +1,22 @@
+error[E0599]: no method named `poll` found for struct `Sleep` in the current scope
+  --> $DIR/pin-needed-to-poll.rs:42:20
+   |
+LL | struct Sleep;
+   | ------------- method `poll` not found for this
+...
+LL |         self.sleep.poll(cx)
+   |                    ^^^^ method not found in `Sleep`
+   | 
+  ::: $SRC_DIR/core/src/future/future.rs:LL:COL
+   |
+LL |     fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>;
+   |        ---- the method is available for `Pin<&mut Sleep>` here
+   |
+help: consider wrapping the receiver expression with the appropriate type
+   |
+LL |         Pin::new(&mut self.sleep).poll(cx)
+   |         ^^^^^^^^^^^^^           ^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/ui/copy-a-resource.stderr b/src/test/ui/copy-a-resource.stderr
index 36cf57bd3c5..79095452f9d 100644
--- a/src/test/ui/copy-a-resource.stderr
+++ b/src/test/ui/copy-a-resource.stderr
@@ -6,14 +6,6 @@ LL | struct Foo {
 ...
 LL |     let _y = x.clone();
    |                ^^^^^ method not found in `Foo`
-   | 
-  ::: $SRC_DIR/core/src/clone.rs:LL:COL
-   |
-LL |     fn clone(&self) -> Self;
-   |        -----
-   |        |
-   |        the method is available for `Arc<Foo>` here
-   |        the method is available for `Rc<Foo>` here
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `clone`, perhaps you need to implement it:
diff --git a/src/test/ui/derives/derive-assoc-type-not-impl.stderr b/src/test/ui/derives/derive-assoc-type-not-impl.stderr
index ffee7004f8f..fd993d0f9d8 100644
--- a/src/test/ui/derives/derive-assoc-type-not-impl.stderr
+++ b/src/test/ui/derives/derive-assoc-type-not-impl.stderr
@@ -12,14 +12,6 @@ LL | struct NotClone;
 ...
 LL |     Bar::<NotClone> { x: 1 }.clone();
    |                              ^^^^^ method cannot be called on `Bar<NotClone>` due to unsatisfied trait bounds
-   | 
-  ::: $SRC_DIR/core/src/clone.rs:LL:COL
-   |
-LL |     fn clone(&self) -> Self;
-   |        -----
-   |        |
-   |        the method is available for `Arc<Bar<NotClone>>` here
-   |        the method is available for `Rc<Bar<NotClone>>` here
    |
    = note: the following trait bounds were not satisfied:
            `NotClone: Clone`
diff --git a/src/test/ui/issues/issue-2823.stderr b/src/test/ui/issues/issue-2823.stderr
index e044352e954..b3bc946292f 100644
--- a/src/test/ui/issues/issue-2823.stderr
+++ b/src/test/ui/issues/issue-2823.stderr
@@ -6,14 +6,6 @@ LL | struct C {
 ...
 LL |     let _d = c.clone();
    |                ^^^^^ method not found in `C`
-   | 
-  ::: $SRC_DIR/core/src/clone.rs:LL:COL
-   |
-LL |     fn clone(&self) -> Self;
-   |        -----
-   |        |
-   |        the method is available for `Arc<C>` here
-   |        the method is available for `Rc<C>` here
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `clone`, perhaps you need to implement it:
diff --git a/src/test/ui/issues/issue-69725.stderr b/src/test/ui/issues/issue-69725.stderr
index 48c71d76af0..4dd6b4bbb68 100644
--- a/src/test/ui/issues/issue-69725.stderr
+++ b/src/test/ui/issues/issue-69725.stderr
@@ -8,14 +8,6 @@ LL |     let _ = Struct::<A>::new().clone();
    |
 LL | pub struct Struct<A>(A);
    | ------------------------ doesn't satisfy `Struct<A>: Clone`
-   | 
-  ::: $SRC_DIR/core/src/clone.rs:LL:COL
-   |
-LL |     fn clone(&self) -> Self;
-   |        -----
-   |        |
-   |        the method is available for `Arc<Struct<A>>` here
-   |        the method is available for `Rc<Struct<A>>` here
    |
    = note: the following trait bounds were not satisfied:
            `A: Clone`
diff --git a/src/test/ui/non-copyable-void.stderr b/src/test/ui/non-copyable-void.stderr
index 8395a3a0563..99af04e7cd9 100644
--- a/src/test/ui/non-copyable-void.stderr
+++ b/src/test/ui/non-copyable-void.stderr
@@ -3,14 +3,6 @@ error[E0599]: no method named `clone` found for enum `c_void` in the current sco
    |
 LL |         let _z = (*y).clone();
    |                       ^^^^^ method not found in `c_void`
-   | 
-  ::: $SRC_DIR/core/src/clone.rs:LL:COL
-   |
-LL |     fn clone(&self) -> Self;
-   |        -----
-   |        |
-   |        the method is available for `Arc<c_void>` here
-   |        the method is available for `Rc<c_void>` here
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/noncopyable-class.stderr b/src/test/ui/noncopyable-class.stderr
index b8e467d8402..4674c16eb43 100644
--- a/src/test/ui/noncopyable-class.stderr
+++ b/src/test/ui/noncopyable-class.stderr
@@ -6,14 +6,6 @@ LL | struct Foo {
 ...
 LL |     let _y = x.clone();
    |                ^^^^^ method not found in `Foo`
-   | 
-  ::: $SRC_DIR/core/src/clone.rs:LL:COL
-   |
-LL |     fn clone(&self) -> Self;
-   |        -----
-   |        |
-   |        the method is available for `Arc<Foo>` here
-   |        the method is available for `Rc<Foo>` here
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `clone`, perhaps you need to implement it:
diff --git a/src/test/ui/resolve/issue-82865.rs b/src/test/ui/resolve/issue-82865.rs
new file mode 100644
index 00000000000..07d88c413bf
--- /dev/null
+++ b/src/test/ui/resolve/issue-82865.rs
@@ -0,0 +1,13 @@
+// Regression test for #82865.
+
+#![feature(decl_macro)]
+
+use x::y::z; //~ ERROR: failed to resolve: maybe a missing crate `x`?
+
+macro mac () {
+    Box::z //~ ERROR: no function or associated item
+}
+
+fn main() {
+    mac!();
+}
diff --git a/src/test/ui/resolve/issue-82865.stderr b/src/test/ui/resolve/issue-82865.stderr
new file mode 100644
index 00000000000..027d7a0e0e4
--- /dev/null
+++ b/src/test/ui/resolve/issue-82865.stderr
@@ -0,0 +1,21 @@
+error[E0433]: failed to resolve: maybe a missing crate `x`?
+  --> $DIR/issue-82865.rs:5:5
+   |
+LL | use x::y::z;
+   |     ^ maybe a missing crate `x`?
+
+error[E0599]: no function or associated item named `z` found for struct `Box<_, _>` in the current scope
+  --> $DIR/issue-82865.rs:8:10
+   |
+LL |     Box::z
+   |          ^ function or associated item not found in `Box<_, _>`
+...
+LL |     mac!();
+   |     ------- in this macro invocation
+   |
+   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error: aborting due to 2 previous errors
+
+Some errors have detailed explanations: E0433, E0599.
+For more information about an error, try `rustc --explain E0433`.
diff --git a/src/test/ui/self/point-at-arbitrary-self-type-method.stderr b/src/test/ui/self/point-at-arbitrary-self-type-method.stderr
index 2954a499c18..b804ddfb024 100644
--- a/src/test/ui/self/point-at-arbitrary-self-type-method.stderr
+++ b/src/test/ui/self/point-at-arbitrary-self-type-method.stderr
@@ -9,6 +9,11 @@ LL |     fn foo(self: Box<Self>) {}
 ...
 LL |     A.foo();
    |       ^^^ method not found in `A`
+   |
+help: consider wrapping the receiver expression with the appropriate type
+   |
+LL |     Box::new(A).foo();
+   |     ^^^^^^^^^ ^
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/self/point-at-arbitrary-self-type-trait-method.stderr b/src/test/ui/self/point-at-arbitrary-self-type-trait-method.stderr
index 89fe84c0d2d..e1ed0e42f98 100644
--- a/src/test/ui/self/point-at-arbitrary-self-type-trait-method.stderr
+++ b/src/test/ui/self/point-at-arbitrary-self-type-trait-method.stderr
@@ -10,6 +10,11 @@ LL | struct A;
 ...
 LL |     A.foo()
    |       ^^^ method not found in `A`
+   |
+help: consider wrapping the receiver expression with the appropriate type
+   |
+LL |     Box::new(A).foo()
+   |     ^^^^^^^^^ ^
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature.nll.stderr b/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature.nll.stderr
deleted file mode 100644
index 916a6c2bf12..00000000000
--- a/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature.nll.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-error[E0261]: use of undeclared lifetime name `'a`
-  --> $DIR/missing-lifetimes-in-signature.rs:36:11
-   |
-LL | fn baz<G: 'a, T>(g: G, dest: &mut T) -> impl FnOnce() + '_
-   |        -  ^^ undeclared lifetime
-   |        |
-   |        help: consider introducing lifetime `'a` here: `'a,`
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0261`.
diff --git a/src/test/ui/traits/negative-impls/explicitly-unimplemented-error-message.stderr b/src/test/ui/traits/negative-impls/explicitly-unimplemented-error-message.stderr
index d39daaba206..01e36a4a62a 100644
--- a/src/test/ui/traits/negative-impls/explicitly-unimplemented-error-message.stderr
+++ b/src/test/ui/traits/negative-impls/explicitly-unimplemented-error-message.stderr
@@ -6,14 +6,6 @@ LL | struct Qux;
 ...
 LL |     Qux.clone();
    |         ^^^^^ method not found in `Qux`
-   | 
-  ::: $SRC_DIR/core/src/clone.rs:LL:COL
-   |
-LL |     fn clone(&self) -> Self;
-   |        -----
-   |        |
-   |        the method is available for `Arc<Qux>` here
-   |        the method is available for `Rc<Qux>` here
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the trait `Clone` defines an item `clone`, but is explicitely unimplemented
diff --git a/src/test/ui/union/union-derive-clone.stderr b/src/test/ui/union/union-derive-clone.stderr
index a793bf58d23..546394664df 100644
--- a/src/test/ui/union/union-derive-clone.stderr
+++ b/src/test/ui/union/union-derive-clone.stderr
@@ -25,14 +25,6 @@ LL | struct CloneNoCopy;
 ...
 LL |     let w = u.clone();
    |               ^^^^^ method cannot be called on `U5<CloneNoCopy>` due to unsatisfied trait bounds
-   | 
-  ::: $SRC_DIR/core/src/clone.rs:LL:COL
-   |
-LL |     fn clone(&self) -> Self;
-   |        -----
-   |        |
-   |        the method is available for `Arc<U5<CloneNoCopy>>` here
-   |        the method is available for `Rc<U5<CloneNoCopy>>` here
    |
    = note: the following trait bounds were not satisfied:
            `CloneNoCopy: Copy`
diff --git a/src/test/ui/unique-object-noncopyable.stderr b/src/test/ui/unique-object-noncopyable.stderr
index 4bbacfc0a8b..6a355dd2562 100644
--- a/src/test/ui/unique-object-noncopyable.stderr
+++ b/src/test/ui/unique-object-noncopyable.stderr
@@ -10,14 +10,6 @@ LL |   trait Foo {
 LL |       let _z = y.clone();
    |                  ^^^^^ method cannot be called on `Box<dyn Foo>` due to unsatisfied trait bounds
    | 
-  ::: $SRC_DIR/core/src/clone.rs:LL:COL
-   |
-LL |       fn clone(&self) -> Self;
-   |          -----
-   |          |
-   |          the method is available for `Arc<Box<dyn Foo>>` here
-   |          the method is available for `Rc<Box<dyn Foo>>` here
-   | 
   ::: $SRC_DIR/alloc/src/boxed.rs:LL:COL
    |
 LL | / pub struct Box<
diff --git a/src/test/ui/unique-pinned-nocopy.stderr b/src/test/ui/unique-pinned-nocopy.stderr
index dd0b7fc5489..a4421bcf809 100644
--- a/src/test/ui/unique-pinned-nocopy.stderr
+++ b/src/test/ui/unique-pinned-nocopy.stderr
@@ -7,14 +7,6 @@ LL |   struct R {
 LL |       let _j = i.clone();
    |                  ^^^^^ method cannot be called on `Box<R>` due to unsatisfied trait bounds
    | 
-  ::: $SRC_DIR/core/src/clone.rs:LL:COL
-   |
-LL |       fn clone(&self) -> Self;
-   |          -----
-   |          |
-   |          the method is available for `Arc<Box<R>>` here
-   |          the method is available for `Rc<Box<R>>` here
-   | 
   ::: $SRC_DIR/alloc/src/boxed.rs:LL:COL
    |
 LL | / pub struct Box<