about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2021-02-17 19:13:51 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2021-02-17 19:15:24 +0000
commit8ae05dfdf6014e8538ef11f989bc493363cc87ab (patch)
tree63ad6f5079208b8ee9e9f18508555ee414ad97b8 /src
parentee88f46bb5e27c4d9f30326e69ff2298dcbeecb1 (diff)
downloadrust-8ae05dfdf6014e8538ef11f989bc493363cc87ab.tar.gz
rust-8ae05dfdf6014e8538ef11f989bc493363cc87ab.zip
try-back-block-type test: Use TryFromSliceError for From test
Using `i32` is rather fragile because it has many implementations -
and indeed I'm about to add one.

TryFromSliceError is nice because it doesn't seem likely to grow new
conversions.  We still have one conversion, from Infallible.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/try-block/try-block-bad-type.rs2
-rw-r--r--src/test/ui/try-block/try-block-bad-type.stderr10
2 files changed, 4 insertions, 8 deletions
diff --git a/src/test/ui/try-block/try-block-bad-type.rs b/src/test/ui/try-block/try-block-bad-type.rs
index 496ba145810..ef6e690e1bd 100644
--- a/src/test/ui/try-block/try-block-bad-type.rs
+++ b/src/test/ui/try-block/try-block-bad-type.rs
@@ -3,7 +3,7 @@
 #![feature(try_blocks)]
 
 pub fn main() {
-    let res: Result<u32, i32> = try {
+    let res: Result<u32, std::array::TryFromSliceError> = try {
         Err("")?; //~ ERROR `?` couldn't convert the error
         5
     };
diff --git a/src/test/ui/try-block/try-block-bad-type.stderr b/src/test/ui/try-block/try-block-bad-type.stderr
index 2d1313d7d0e..75a42c0d6b7 100644
--- a/src/test/ui/try-block/try-block-bad-type.stderr
+++ b/src/test/ui/try-block/try-block-bad-type.stderr
@@ -1,16 +1,12 @@
-error[E0277]: `?` couldn't convert the error to `i32`
+error[E0277]: `?` couldn't convert the error to `TryFromSliceError`
   --> $DIR/try-block-bad-type.rs:7:16
    |
 LL |         Err("")?;
-   |                ^ the trait `From<&str>` is not implemented for `i32`
+   |                ^ the trait `From<&str>` is not implemented for `TryFromSliceError`
    |
    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
    = help: the following implementations were found:
-             <i32 as From<NonZeroI32>>
-             <i32 as From<bool>>
-             <i32 as From<i16>>
-             <i32 as From<i8>>
-           and 2 others
+             <TryFromSliceError as From<Infallible>>
    = note: required by `from`
 
 error[E0271]: type mismatch resolving `<Result<i32, i32> as Try>::Ok == &str`