diff options
| author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2021-02-17 19:13:51 +0000 |
|---|---|---|
| committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2021-02-17 19:15:24 +0000 |
| commit | 8ae05dfdf6014e8538ef11f989bc493363cc87ab (patch) | |
| tree | 63ad6f5079208b8ee9e9f18508555ee414ad97b8 /src | |
| parent | ee88f46bb5e27c4d9f30326e69ff2298dcbeecb1 (diff) | |
| download | rust-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.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/try-block/try-block-bad-type.stderr | 10 |
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` |
