summaryrefslogtreecommitdiffstats
path: root/src/test/ui/did_you_mean/compatible-variants.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/did_you_mean/compatible-variants.stderr')
-rw-r--r--src/test/ui/did_you_mean/compatible-variants.stderr221
1 files changed, 221 insertions, 0 deletions
diff --git a/src/test/ui/did_you_mean/compatible-variants.stderr b/src/test/ui/did_you_mean/compatible-variants.stderr
new file mode 100644
index 000000000..fe81da198
--- /dev/null
+++ b/src/test/ui/did_you_mean/compatible-variants.stderr
@@ -0,0 +1,221 @@
+error[E0308]: mismatched types
+ --> $DIR/compatible-variants.rs:13:5
+ |
+LL | fn a() -> Option<()> {
+ | ---------- expected `Option<()>` because of return type
+LL | / while false {
+LL | |
+LL | | f();
+LL | | }
+ | |_____^ expected enum `Option`, found `()`
+ |
+ = note: expected enum `Option<()>`
+ found unit type `()`
+help: try adding an expression at the end of the block
+ |
+LL ~ }
+LL + None
+ |
+LL ~ }
+LL + Some(())
+ |
+
+error[E0308]: mismatched types
+ --> $DIR/compatible-variants.rs:21:5
+ |
+LL | fn b() -> Result<(), ()> {
+ | -------------- expected `Result<(), ()>` because of return type
+LL | f()
+ | ^^^ expected enum `Result`, found `()`
+ |
+ = note: expected enum `Result<(), ()>`
+ found unit type `()`
+help: try adding an expression at the end of the block
+ |
+LL ~ f();
+LL + Ok(())
+ |
+
+error[E0308]: mismatched types
+ --> $DIR/compatible-variants.rs:27:5
+ |
+LL | fn c() -> Option<()> {
+ | ---------- expected `Option<()>` because of return type
+LL | / for _ in [1, 2] {
+LL | |
+LL | | f();
+LL | | }
+ | |_____^ expected enum `Option`, found `()`
+ |
+ = note: expected enum `Option<()>`
+ found unit type `()`
+help: try adding an expression at the end of the block
+ |
+LL ~ }
+LL + None
+ |
+LL ~ }
+LL + Some(())
+ |
+
+error[E0308]: `?` operator has incompatible types
+ --> $DIR/compatible-variants.rs:35:5
+ |
+LL | c()?
+ | ^^^^ expected enum `Option`, found `()`
+ |
+ = note: `?` operator cannot convert from `()` to `Option<()>`
+ = note: expected enum `Option<()>`
+ found unit type `()`
+help: try removing this `?`
+ |
+LL - c()?
+LL + c()
+ |
+help: try adding an expression at the end of the block
+ |
+LL ~ c()?;
+LL + None
+ |
+LL ~ c()?;
+LL + Some(())
+ |
+
+error[E0308]: mismatched types
+ --> $DIR/compatible-variants.rs:42:25
+ |
+LL | let _: Option<()> = while false {};
+ | ---------- ^^^^^^^^^^^^^^ expected enum `Option`, found `()`
+ | |
+ | expected due to this
+ |
+ = note: expected enum `Option<()>`
+ found unit type `()`
+help: try wrapping the expression in `Some`
+ |
+LL | let _: Option<()> = Some(while false {});
+ | +++++ +
+
+error[E0308]: mismatched types
+ --> $DIR/compatible-variants.rs:46:9
+ |
+LL | while false {}
+ | ^^^^^^^^^^^^^^ expected enum `Option`, found `()`
+ |
+ = note: expected enum `Option<()>`
+ found unit type `()`
+help: try adding an expression at the end of the block
+ |
+LL ~ while false {}
+LL + None
+ |
+LL ~ while false {}
+LL + Some(())
+ |
+
+error[E0308]: mismatched types
+ --> $DIR/compatible-variants.rs:50:31
+ |
+LL | let _: Result<i32, i32> = 1;
+ | ---------------- ^ expected enum `Result`, found integer
+ | |
+ | expected due to this
+ |
+ = note: expected enum `Result<i32, i32>`
+ found type `{integer}`
+help: try wrapping the expression in a variant of `Result`
+ |
+LL | let _: Result<i32, i32> = Ok(1);
+ | +++ +
+LL | let _: Result<i32, i32> = Err(1);
+ | ++++ +
+
+error[E0308]: mismatched types
+ --> $DIR/compatible-variants.rs:53:26
+ |
+LL | let _: Option<i32> = 1;
+ | ----------- ^ expected enum `Option`, found integer
+ | |
+ | expected due to this
+ |
+ = note: expected enum `Option<i32>`
+ found type `{integer}`
+help: try wrapping the expression in `Some`
+ |
+LL | let _: Option<i32> = Some(1);
+ | +++++ +
+
+error[E0308]: mismatched types
+ --> $DIR/compatible-variants.rs:56:28
+ |
+LL | let _: Hey<i32, i32> = 1;
+ | ------------- ^ expected enum `Hey`, found integer
+ | |
+ | expected due to this
+ |
+ = note: expected enum `Hey<i32, i32>`
+ found type `{integer}`
+help: try wrapping the expression in a variant of `Hey`
+ |
+LL | let _: Hey<i32, i32> = Hey::A(1);
+ | +++++++ +
+LL | let _: Hey<i32, i32> = Hey::B(1);
+ | +++++++ +
+
+error[E0308]: mismatched types
+ --> $DIR/compatible-variants.rs:59:29
+ |
+LL | let _: Hey<i32, bool> = false;
+ | -------------- ^^^^^ expected enum `Hey`, found `bool`
+ | |
+ | expected due to this
+ |
+ = note: expected enum `Hey<i32, bool>`
+ found type `bool`
+help: try wrapping the expression in `Hey::B`
+ |
+LL | let _: Hey<i32, bool> = Hey::B(false);
+ | +++++++ +
+
+error[E0308]: mismatched types
+ --> $DIR/compatible-variants.rs:63:19
+ |
+LL | let _ = Foo { bar };
+ | ^^^ expected enum `Option`, found `i32`
+ |
+ = note: expected enum `Option<i32>`
+ found type `i32`
+help: try wrapping the expression in `Some`
+ |
+LL | let _ = Foo { bar: Some(bar) };
+ | ++++++++++ +
+
+error[E0308]: mismatched types
+ --> $DIR/compatible-variants.rs:80:16
+ |
+LL | let a: A = B::Fst;
+ | - ^^^^^^ expected enum `A`, found enum `B`
+ | |
+ | expected due to this
+ |
+help: try wrapping the expression in `A::B`
+ |
+LL | let a: A = A::B { b: B::Fst };
+ | +++++++++ +
+
+error[E0308]: mismatched types
+ --> $DIR/compatible-variants.rs:86:17
+ |
+LL | let a: A2 = B::Fst;
+ | -- ^^^^^^ expected struct `A2`, found enum `B`
+ | |
+ | expected due to this
+ |
+help: try wrapping the expression in `A2`
+ |
+LL | let a: A2 = A2(B::Fst);
+ | +++ +
+
+error: aborting due to 13 previous errors
+
+For more information about this error, try `rustc --explain E0308`.