diff options
| author | Michael Howell <michael@notriddle.com> | 2022-09-23 13:24:35 -0700 |
|---|---|---|
| committer | Michael Howell <michael@notriddle.com> | 2022-09-23 14:27:44 -0700 |
| commit | ac06d9cca369b164ab522eba81d6b048309f058a (patch) | |
| tree | 8812eb18887189726e9451e228f51e9f5f0328dd /src/test | |
| parent | 4a14677239bbd9a3892d165ee24513c1a05820e4 (diff) | |
| download | rust-ac06d9cca369b164ab522eba81d6b048309f058a.tar.gz rust-ac06d9cca369b164ab522eba81d6b048309f058a.zip | |
diagnostics: avoid syntactically invalid suggestion in if conditionals
Fixes #101065
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/suggestions/issue-101065.fixed | 14 | ||||
| -rw-r--r-- | src/test/ui/suggestions/issue-101065.rs | 14 | ||||
| -rw-r--r-- | src/test/ui/suggestions/issue-101065.stderr | 23 |
3 files changed, 51 insertions, 0 deletions
diff --git a/src/test/ui/suggestions/issue-101065.fixed b/src/test/ui/suggestions/issue-101065.fixed new file mode 100644 index 00000000000..88c716cc86c --- /dev/null +++ b/src/test/ui/suggestions/issue-101065.fixed @@ -0,0 +1,14 @@ +// check-fail +// run-rustfix + +enum FakeResult<T> { + Ok(T) +} + +fn main() { + let _x = if true { + FakeResult::Ok(FakeResult::Ok(())) + } else { + FakeResult::Ok(FakeResult::Ok(())) //~ERROR E0308 + }; +} diff --git a/src/test/ui/suggestions/issue-101065.rs b/src/test/ui/suggestions/issue-101065.rs new file mode 100644 index 00000000000..2715f102708 --- /dev/null +++ b/src/test/ui/suggestions/issue-101065.rs @@ -0,0 +1,14 @@ +// check-fail +// run-rustfix + +enum FakeResult<T> { + Ok(T) +} + +fn main() { + let _x = if true { + FakeResult::Ok(FakeResult::Ok(())) + } else { + FakeResult::Ok(()) //~ERROR E0308 + }; +} diff --git a/src/test/ui/suggestions/issue-101065.stderr b/src/test/ui/suggestions/issue-101065.stderr new file mode 100644 index 00000000000..6f7ecd24ca4 --- /dev/null +++ b/src/test/ui/suggestions/issue-101065.stderr @@ -0,0 +1,23 @@ +error[E0308]: `if` and `else` have incompatible types + --> $DIR/issue-101065.rs:12:9 + | +LL | let _x = if true { + | ______________- +LL | | FakeResult::Ok(FakeResult::Ok(())) + | | ---------------------------------- expected because of this +LL | | } else { +LL | | FakeResult::Ok(()) + | | ^^^^^^^^^^^^^^^^^^ expected enum `FakeResult`, found `()` +LL | | }; + | |_____- `if` and `else` have incompatible types + | + = note: expected enum `FakeResult<FakeResult<()>>` + found enum `FakeResult<()>` +help: try wrapping the expression in `FakeResult::Ok` + | +LL | FakeResult::Ok(FakeResult::Ok(())) + | +++++++++++++++ + + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0308`. |
