diff options
| author | bors <bors@rust-lang.org> | 2021-08-02 15:54:11 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-08-02 15:54:11 +0000 |
| commit | 6be8a06bcf2e7c45db2f9e3dd3c9c0e282562a93 (patch) | |
| tree | 5b4d80eede168926e22d9f1aa206ceb983e2e011 /src/test | |
| parent | 3227e35765bab6d02c581928e26ad1d34bacf394 (diff) | |
| parent | 7fc26e96657f39de592d7667eac3b0df39642a66 (diff) | |
| download | rust-6be8a06bcf2e7c45db2f9e3dd3c9c0e282562a93.tar.gz rust-6be8a06bcf2e7c45db2f9e3dd3c9c0e282562a93.zip | |
Auto merge of #87698 - camsteffen:rollup-yvjfc26, r=camsteffen
Rollup of 6 pull requests Successful merges: - #86176 (Implement a `explicit_generic_args_with_impl_trait` feature gate) - #87654 (Add documentation for the order of Option and Result) - #87659 (Fix invalid suggestions for non-ASCII characters in byte constants) - #87673 (Tweak opaque type mismatch error) - #87687 (Inline some macros) - #87690 (Add missing "allocated object" doc link to `<*mut T>::add`) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'src/test')
19 files changed, 189 insertions, 69 deletions
diff --git a/src/test/ui/async-await/dont-suggest-missing-await.stderr b/src/test/ui/async-await/dont-suggest-missing-await.stderr index 654a3bcc92d..4dc5cafb986 100644 --- a/src/test/ui/async-await/dont-suggest-missing-await.stderr +++ b/src/test/ui/async-await/dont-suggest-missing-await.stderr @@ -1,13 +1,14 @@ error[E0308]: mismatched types --> $DIR/dont-suggest-missing-await.rs:14:18 | -LL | async fn make_u32() -> u32 { - | --- checked the `Output` of this `async fn`, found opaque type -... LL | take_u32(x) | ^ expected `u32`, found opaque type | - = note: while checking the return type of the `async fn` +note: while checking the return type of the `async fn` + --> $DIR/dont-suggest-missing-await.rs:7:24 + | +LL | async fn make_u32() -> u32 { + | ^^^ checked the `Output` of this `async fn`, found opaque type = note: expected type `u32` found opaque type `impl Future` help: consider `await`ing on the `Future` diff --git a/src/test/ui/async-await/generator-desc.stderr b/src/test/ui/async-await/generator-desc.stderr index 04f191cc5e8..a7aedbb2b32 100644 --- a/src/test/ui/async-await/generator-desc.stderr +++ b/src/test/ui/async-await/generator-desc.stderr @@ -12,16 +12,19 @@ LL | fun(async {}, async {}); error[E0308]: mismatched types --> $DIR/generator-desc.rs:12:16 | -LL | async fn one() {} - | - checked the `Output` of this `async fn`, expected opaque type -LL | async fn two() {} - | - checked the `Output` of this `async fn`, found opaque type -... LL | fun(one(), two()); | ^^^^^ expected opaque type, found a different opaque type | - = note: while checking the return type of the `async fn` - = note: while checking the return type of the `async fn` +note: while checking the return type of the `async fn` + --> $DIR/generator-desc.rs:5:16 + | +LL | async fn one() {} + | ^ checked the `Output` of this `async fn`, expected opaque type +note: while checking the return type of the `async fn` + --> $DIR/generator-desc.rs:6:16 + | +LL | async fn two() {} + | ^ checked the `Output` of this `async fn`, found opaque type = note: expected opaque type `impl Future` (opaque type at <$DIR/generator-desc.rs:5:16>) found opaque type `impl Future` (opaque type at <$DIR/generator-desc.rs:6:16>) = help: consider `await`ing on both `Future`s diff --git a/src/test/ui/async-await/issue-61076.rs b/src/test/ui/async-await/issue-61076.rs index 9fe3313ee6c..220f0774e2d 100644 --- a/src/test/ui/async-await/issue-61076.rs +++ b/src/test/ui/async-await/issue-61076.rs @@ -57,6 +57,8 @@ async fn struct_() -> Struct { async fn tuple() -> Tuple { //~^ NOTE checked the `Output` of this `async fn`, expected opaque type + //~| NOTE while checking the return type of the `async fn` + //~| NOTE in this expansion of desugaring of `async` block or function Tuple(1i32) } @@ -92,7 +94,6 @@ async fn match_() { Tuple(_) => {} //~ ERROR mismatched types //~^ NOTE expected opaque type, found struct `Tuple` //~| NOTE expected opaque type `impl Future` - //~| NOTE while checking the return type of the `async fn` } } diff --git a/src/test/ui/async-await/issue-61076.stderr b/src/test/ui/async-await/issue-61076.stderr index ba97e135790..9fb2d5bc6cb 100644 --- a/src/test/ui/async-await/issue-61076.stderr +++ b/src/test/ui/async-await/issue-61076.stderr @@ -16,7 +16,7 @@ LL | foo().await?; | ^^^^^^ error[E0277]: the `?` operator can only be applied to values that implement `Try` - --> $DIR/issue-61076.rs:65:5 + --> $DIR/issue-61076.rs:67:5 | LL | t?; | ^^ the `?` operator cannot be applied to type `T` @@ -33,7 +33,7 @@ LL | t.await?; | ^^^^^^ error[E0609]: no field `0` on type `impl Future` - --> $DIR/issue-61076.rs:76:26 + --> $DIR/issue-61076.rs:78:26 | LL | let _: i32 = tuple().0; | ^ field not available in `impl Future`, but it is available in its `Output` @@ -44,7 +44,7 @@ LL | let _: i32 = tuple().await.0; | ^^^^^^ error[E0609]: no field `a` on type `impl Future` - --> $DIR/issue-61076.rs:80:28 + --> $DIR/issue-61076.rs:82:28 | LL | let _: i32 = struct_().a; | ^ field not available in `impl Future`, but it is available in its `Output` @@ -55,7 +55,7 @@ LL | let _: i32 = struct_().await.a; | ^^^^^^ error[E0599]: no method named `method` found for opaque type `impl Future` in the current scope - --> $DIR/issue-61076.rs:84:15 + --> $DIR/issue-61076.rs:86:15 | LL | struct_().method(); | ^^^^^^ method not found in `impl Future` @@ -66,15 +66,16 @@ LL | struct_().await.method(); | ^^^^^^ error[E0308]: mismatched types - --> $DIR/issue-61076.rs:92:9 + --> $DIR/issue-61076.rs:94:9 | -LL | async fn tuple() -> Tuple { - | ----- checked the `Output` of this `async fn`, expected opaque type -... LL | Tuple(_) => {} | ^^^^^^^^ expected opaque type, found struct `Tuple` | - = note: while checking the return type of the `async fn` +note: while checking the return type of the `async fn` + --> $DIR/issue-61076.rs:58:21 + | +LL | async fn tuple() -> Tuple { + | ^^^^^ checked the `Output` of this `async fn`, expected opaque type = note: expected opaque type `impl Future` found struct `Tuple` help: consider `await`ing on the `Future` diff --git a/src/test/ui/async-await/suggest-missing-await-closure.stderr b/src/test/ui/async-await/suggest-missing-await-closure.stderr index 483e52536a1..9d742049046 100644 --- a/src/test/ui/async-await/suggest-missing-await-closure.stderr +++ b/src/test/ui/async-await/suggest-missing-await-closure.stderr @@ -1,13 +1,14 @@ error[E0308]: mismatched types --> $DIR/suggest-missing-await-closure.rs:16:18 | -LL | async fn make_u32() -> u32 { - | --- checked the `Output` of this `async fn`, found opaque type -... LL | take_u32(x) | ^ expected `u32`, found opaque type | - = note: while checking the return type of the `async fn` +note: while checking the return type of the `async fn` + --> $DIR/suggest-missing-await-closure.rs:8:24 + | +LL | async fn make_u32() -> u32 { + | ^^^ checked the `Output` of this `async fn`, found opaque type = note: expected type `u32` found opaque type `impl Future` help: consider `await`ing on the `Future` diff --git a/src/test/ui/async-await/suggest-missing-await.stderr b/src/test/ui/async-await/suggest-missing-await.stderr index 14b5ee95ee8..890f66c58d0 100644 --- a/src/test/ui/async-await/suggest-missing-await.stderr +++ b/src/test/ui/async-await/suggest-missing-await.stderr @@ -1,13 +1,14 @@ error[E0308]: mismatched types --> $DIR/suggest-missing-await.rs:12:14 | -LL | async fn make_u32() -> u32 { - | --- checked the `Output` of this `async fn`, found opaque type -... LL | take_u32(x) | ^ expected `u32`, found opaque type | - = note: while checking the return type of the `async fn` +note: while checking the return type of the `async fn` + --> $DIR/suggest-missing-await.rs:5:24 + | +LL | async fn make_u32() -> u32 { + | ^^^ checked the `Output` of this `async fn`, found opaque type = note: expected type `u32` found opaque type `impl Future` help: consider `await`ing on the `Future` @@ -18,13 +19,14 @@ LL | take_u32(x.await) error[E0308]: mismatched types --> $DIR/suggest-missing-await.rs:22:5 | -LL | async fn dummy() {} - | - checked the `Output` of this `async fn`, found opaque type -... LL | dummy() | ^^^^^^^ expected `()`, found opaque type | - = note: while checking the return type of the `async fn` +note: while checking the return type of the `async fn` + --> $DIR/suggest-missing-await.rs:18:18 + | +LL | async fn dummy() {} + | ^ checked the `Output` of this `async fn`, found opaque type = note: expected unit type `()` found opaque type `impl Future` help: consider `await`ing on the `Future` diff --git a/src/test/ui/attributes/key-value-non-ascii.stderr b/src/test/ui/attributes/key-value-non-ascii.stderr index 1d4b0d5b2b1..01a07ad3b0e 100644 --- a/src/test/ui/attributes/key-value-non-ascii.stderr +++ b/src/test/ui/attributes/key-value-non-ascii.stderr @@ -2,10 +2,12 @@ error: non-ASCII character in byte constant --> $DIR/key-value-non-ascii.rs:3:19 | LL | #[rustc_dummy = b"ffi.rs"] - | ^ - | | - | byte constant must be ASCII - | help: use a \xHH escape for a non-ASCII byte: `\xFB03` + | ^ byte constant must be ASCII + | +help: if you meant to use the UTF-8 encoding of 'ffi', use \xHH escapes + | +LL | #[rustc_dummy = b"/xEF/xAC/x83.rs"] + | ^^^^^^^^^^^^ error: aborting due to previous error diff --git a/src/test/ui/impl-trait/explicit-generic-args-with-impl-trait/explicit-generic-args-for-impl.rs b/src/test/ui/impl-trait/explicit-generic-args-with-impl-trait/explicit-generic-args-for-impl.rs new file mode 100644 index 00000000000..832a3e3b7b1 --- /dev/null +++ b/src/test/ui/impl-trait/explicit-generic-args-with-impl-trait/explicit-generic-args-for-impl.rs @@ -0,0 +1,7 @@ +#![feature(explicit_generic_args_with_impl_trait)] + +fn foo<T: ?Sized>(_f: impl AsRef<T>) {} + +fn main() { + foo::<str, String>("".to_string()); //~ ERROR E0107 +} diff --git a/src/test/ui/impl-trait/explicit-generic-args-with-impl-trait/explicit-generic-args-for-impl.stderr b/src/test/ui/impl-trait/explicit-generic-args-with-impl-trait/explicit-generic-args-for-impl.stderr new file mode 100644 index 00000000000..739e55e2943 --- /dev/null +++ b/src/test/ui/impl-trait/explicit-generic-args-with-impl-trait/explicit-generic-args-for-impl.stderr @@ -0,0 +1,17 @@ +error[E0107]: this function takes at most 1 generic argument but 2 generic arguments were supplied + --> $DIR/explicit-generic-args-for-impl.rs:6:5 + | +LL | foo::<str, String>("".to_string()); + | ^^^ ------ help: remove this generic argument + | | + | expected at most 1 generic argument + | +note: function defined here, with at most 1 generic parameter: `T` + --> $DIR/explicit-generic-args-for-impl.rs:3:4 + | +LL | fn foo<T: ?Sized>(_f: impl AsRef<T>) {} + | ^^^ - + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0107`. diff --git a/src/test/ui/impl-trait/explicit-generic-args-with-impl-trait/explicit-generic-args.rs b/src/test/ui/impl-trait/explicit-generic-args-with-impl-trait/explicit-generic-args.rs new file mode 100644 index 00000000000..a6585bcf848 --- /dev/null +++ b/src/test/ui/impl-trait/explicit-generic-args-with-impl-trait/explicit-generic-args.rs @@ -0,0 +1,9 @@ +// check-pass + +#![feature(explicit_generic_args_with_impl_trait)] + +fn foo<T: ?Sized>(_f: impl AsRef<T>) {} + +fn main() { + foo::<str>("".to_string()); +} diff --git a/src/test/ui/impl-trait/explicit-generic-args-with-impl-trait/feature-gate.rs b/src/test/ui/impl-trait/explicit-generic-args-with-impl-trait/feature-gate.rs new file mode 100644 index 00000000000..0e4d6986d46 --- /dev/null +++ b/src/test/ui/impl-trait/explicit-generic-args-with-impl-trait/feature-gate.rs @@ -0,0 +1,7 @@ +// gate-test-explicit_generic_args_with_impl_trait + +fn foo<T: ?Sized>(_f: impl AsRef<T>) {} + +fn main() { + foo::<str>("".to_string()); //~ ERROR E0632 +} diff --git a/src/test/ui/impl-trait/explicit-generic-args-with-impl-trait/feature-gate.stderr b/src/test/ui/impl-trait/explicit-generic-args-with-impl-trait/feature-gate.stderr new file mode 100644 index 00000000000..6adc4e6b239 --- /dev/null +++ b/src/test/ui/impl-trait/explicit-generic-args-with-impl-trait/feature-gate.stderr @@ -0,0 +1,9 @@ +error[E0632]: cannot provide explicit generic arguments when `impl Trait` is used in argument position + --> $DIR/feature-gate.rs:6:11 + | +LL | foo::<str>("".to_string()); + | ^^^ explicit generic argument not allowed + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0632`. diff --git a/src/test/ui/parser/byte-literals.stderr b/src/test/ui/parser/byte-literals.stderr index 55be113e16b..b9fb42088d9 100644 --- a/src/test/ui/parser/byte-literals.stderr +++ b/src/test/ui/parser/byte-literals.stderr @@ -36,10 +36,12 @@ error: non-ASCII character in byte constant --> $DIR/byte-literals.rs:10:7 | LL | b'é'; - | ^ - | | - | byte constant must be ASCII - | help: use a \xHH escape for a non-ASCII byte: `\xE9` + | ^ byte constant must be ASCII + | +help: if you meant to use the unicode code point for 'é', use a \xHH escape + | +LL | b'\xE9'; + | ^^^^ error[E0763]: unterminated byte constant --> $DIR/byte-literals.rs:11:6 diff --git a/src/test/ui/parser/byte-string-literals.stderr b/src/test/ui/parser/byte-string-literals.stderr index 3a5a8b331d3..4f22a16224f 100644 --- a/src/test/ui/parser/byte-string-literals.stderr +++ b/src/test/ui/parser/byte-string-literals.stderr @@ -24,10 +24,12 @@ error: non-ASCII character in byte constant --> $DIR/byte-string-literals.rs:6:7 | LL | b"é"; - | ^ - | | - | byte constant must be ASCII - | help: use a \xHH escape for a non-ASCII byte: `\xE9` + | ^ byte constant must be ASCII + | +help: if you meant to use the unicode code point for 'é', use a \xHH escape + | +LL | b"\xE9"; + | ^^^^ error: raw byte string must be ASCII --> $DIR/byte-string-literals.rs:7:10 diff --git a/src/test/ui/suggestions/issue-81839.stderr b/src/test/ui/suggestions/issue-81839.stderr index f9076587087..1e0aa9ce40d 100644 --- a/src/test/ui/suggestions/issue-81839.stderr +++ b/src/test/ui/suggestions/issue-81839.stderr @@ -13,13 +13,12 @@ LL | | _ => cx.answer_str("hi"), | | ^^^^^^^^^^^^^^^^^^^ expected `()`, found opaque type LL | | } | |_____- `match` arms have incompatible types - | - ::: $DIR/auxiliary/issue-81839.rs:6:49 | -LL | pub async fn answer_str(&self, _s: &str) -> Test { - | ---- checked the `Output` of this `async fn`, found opaque type +note: while checking the return type of the `async fn` + --> $DIR/auxiliary/issue-81839.rs:6:49 | - = note: while checking the return type of the `async fn` +LL | pub async fn answer_str(&self, _s: &str) -> Test { + | ^^^^ checked the `Output` of this `async fn`, found opaque type = note: expected type `()` found opaque type `impl Future` diff --git a/src/test/ui/suggestions/match-prev-arm-needing-semi.rs b/src/test/ui/suggestions/match-prev-arm-needing-semi.rs index 3b2cff3140d..990a4469764 100644 --- a/src/test/ui/suggestions/match-prev-arm-needing-semi.rs +++ b/src/test/ui/suggestions/match-prev-arm-needing-semi.rs @@ -14,8 +14,14 @@ fn extra_semicolon() { } async fn async_dummy() {} //~ NOTE checked the `Output` of this `async fn`, found opaque type +//~| NOTE while checking the return type of the `async fn` +//~| NOTE in this expansion of desugaring of `async` block or function async fn async_dummy2() {} //~ NOTE checked the `Output` of this `async fn`, found opaque type //~| NOTE checked the `Output` of this `async fn`, found opaque type +//~| NOTE while checking the return type of the `async fn` +//~| NOTE in this expansion of desugaring of `async` block or function +//~| NOTE while checking the return type of the `async fn` +//~| NOTE in this expansion of desugaring of `async` block or function async fn async_extra_semicolon_same() { let _ = match true { //~ NOTE `match` arms have incompatible types @@ -26,7 +32,6 @@ async fn async_extra_semicolon_same() { false => async_dummy(), //~ ERROR `match` arms have incompatible types //~^ NOTE expected `()`, found opaque type //~| NOTE expected type `()` - //~| NOTE while checking the return type of the `async fn` //~| HELP consider `await`ing on the `Future` }; } @@ -40,7 +45,6 @@ async fn async_extra_semicolon_different() { false => async_dummy2(), //~ ERROR `match` arms have incompatible types //~^ NOTE expected `()`, found opaque type //~| NOTE expected type `()` - //~| NOTE while checking the return type of the `async fn` //~| HELP consider `await`ing on the `Future` }; } @@ -53,7 +57,6 @@ async fn async_different_futures() { //~^ NOTE expected opaque type, found a different opaque type //~| NOTE expected type `impl Future` //~| NOTE distinct uses of `impl Trait` result in different opaque types - //~| NOTE while checking the return type of the `async fn` }; } diff --git a/src/test/ui/suggestions/match-prev-arm-needing-semi.stderr b/src/test/ui/suggestions/match-prev-arm-needing-semi.stderr index e31ea9679b5..9e64b539f0f 100644 --- a/src/test/ui/suggestions/match-prev-arm-needing-semi.stderr +++ b/src/test/ui/suggestions/match-prev-arm-needing-semi.stderr @@ -1,9 +1,6 @@ error[E0308]: `match` arms have incompatible types - --> $DIR/match-prev-arm-needing-semi.rs:26:18 + --> $DIR/match-prev-arm-needing-semi.rs:32:18 | -LL | async fn async_dummy() {} - | - checked the `Output` of this `async fn`, found opaque type -... LL | let _ = match true { | _____________- LL | | true => { @@ -18,7 +15,11 @@ LL | | LL | | }; | |_____- `match` arms have incompatible types | - = note: while checking the return type of the `async fn` +note: while checking the return type of the `async fn` + --> $DIR/match-prev-arm-needing-semi.rs:16:24 + | +LL | async fn async_dummy() {} + | ^ checked the `Output` of this `async fn`, found opaque type = note: expected type `()` found opaque type `impl Future` help: consider `await`ing on the `Future` @@ -31,11 +32,8 @@ LL | async_dummy() | -- error[E0308]: `match` arms have incompatible types - --> $DIR/match-prev-arm-needing-semi.rs:40:18 + --> $DIR/match-prev-arm-needing-semi.rs:45:18 | -LL | async fn async_dummy2() {} - | - checked the `Output` of this `async fn`, found opaque type -... LL | let _ = match true { | _____________- LL | | true => { @@ -50,7 +48,11 @@ LL | | LL | | }; | |_____- `match` arms have incompatible types | - = note: while checking the return type of the `async fn` +note: while checking the return type of the `async fn` + --> $DIR/match-prev-arm-needing-semi.rs:19:25 + | +LL | async fn async_dummy2() {} + | ^ checked the `Output` of this `async fn`, found opaque type = note: expected type `()` found opaque type `impl Future` help: consider `await`ing on the `Future` @@ -66,11 +68,8 @@ LL | false => Box::new(async_dummy2()), | error[E0308]: `match` arms have incompatible types - --> $DIR/match-prev-arm-needing-semi.rs:52:18 + --> $DIR/match-prev-arm-needing-semi.rs:56:18 | -LL | async fn async_dummy2() {} - | - checked the `Output` of this `async fn`, found opaque type -... LL | let _ = match true { | _____________- LL | | true => async_dummy(), @@ -83,9 +82,13 @@ LL | | LL | | }; | |_____- `match` arms have incompatible types | - = note: while checking the return type of the `async fn` +note: while checking the return type of the `async fn` + --> $DIR/match-prev-arm-needing-semi.rs:19:25 + | +LL | async fn async_dummy2() {} + | ^ checked the `Output` of this `async fn`, found opaque type = note: expected type `impl Future` (opaque type at <$DIR/match-prev-arm-needing-semi.rs:16:24>) - found opaque type `impl Future` (opaque type at <$DIR/match-prev-arm-needing-semi.rs:17:25>) + found opaque type `impl Future` (opaque type at <$DIR/match-prev-arm-needing-semi.rs:19:25>) = note: distinct uses of `impl Trait` result in different opaque types help: consider `await`ing on both `Future`s | diff --git a/src/test/ui/suggestions/multibyte-escapes.rs b/src/test/ui/suggestions/multibyte-escapes.rs new file mode 100644 index 00000000000..fd5d46a4e92 --- /dev/null +++ b/src/test/ui/suggestions/multibyte-escapes.rs @@ -0,0 +1,18 @@ +// Regression test for #87397. + +fn main() { + b'µ'; + //~^ ERROR: non-ASCII character in byte constant + //~| HELP: if you meant to use the unicode code point for 'µ', use a \xHH escape + //~| NOTE: byte constant must be ASCII + + b'字'; + //~^ ERROR: non-ASCII character in byte constant + //~| NOTE: this multibyte character does not fit into a single byte + //~| NOTE: byte constant must be ASCII + + b"字"; + //~^ ERROR: non-ASCII character in byte constant + //~| HELP: if you meant to use the UTF-8 encoding of '字', use \xHH escapes + //~| NOTE: byte constant must be ASCII +} diff --git a/src/test/ui/suggestions/multibyte-escapes.stderr b/src/test/ui/suggestions/multibyte-escapes.stderr new file mode 100644 index 00000000000..bb4f8e8c304 --- /dev/null +++ b/src/test/ui/suggestions/multibyte-escapes.stderr @@ -0,0 +1,33 @@ +error: non-ASCII character in byte constant + --> $DIR/multibyte-escapes.rs:4:7 + | +LL | b'µ'; + | ^ byte constant must be ASCII + | +help: if you meant to use the unicode code point for 'µ', use a \xHH escape + | +LL | b'\xB5'; + | ^^^^ + +error: non-ASCII character in byte constant + --> $DIR/multibyte-escapes.rs:9:7 + | +LL | b'字'; + | ^^ + | | + | byte constant must be ASCII + | this multibyte character does not fit into a single byte + +error: non-ASCII character in byte constant + --> $DIR/multibyte-escapes.rs:14:7 + | +LL | b"字"; + | ^^ byte constant must be ASCII + | +help: if you meant to use the UTF-8 encoding of '字', use \xHH escapes + | +LL | b"\xE5\xAD\x97"; + | ^^^^^^^^^^^^ + +error: aborting due to 3 previous errors + |
