about summary refs log tree commit diff
path: root/tests/ui/resolve/resolve-inconsistent-binding-mode.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/resolve/resolve-inconsistent-binding-mode.stderr')
-rw-r--r--tests/ui/resolve/resolve-inconsistent-binding-mode.stderr72
1 files changed, 72 insertions, 0 deletions
diff --git a/tests/ui/resolve/resolve-inconsistent-binding-mode.stderr b/tests/ui/resolve/resolve-inconsistent-binding-mode.stderr
new file mode 100644
index 00000000000..c805c9eb125
--- /dev/null
+++ b/tests/ui/resolve/resolve-inconsistent-binding-mode.stderr
@@ -0,0 +1,72 @@
+error[E0409]: variable `i` is bound inconsistently across alternatives separated by `|`
+  --> $DIR/resolve-inconsistent-binding-mode.rs:9:34
+   |
+LL |         Opts::A(ref i) | Opts::B(i) => {}
+   |                     -            ^ bound in different ways
+   |                     |
+   |                     first binding
+
+error[E0409]: variable `i` is bound inconsistently across alternatives separated by `|`
+  --> $DIR/resolve-inconsistent-binding-mode.rs:18:34
+   |
+LL |         Opts::A(ref i) | Opts::B(i) => {}
+   |                     -            ^ bound in different ways
+   |                     |
+   |                     first binding
+
+error[E0409]: variable `i` is bound inconsistently across alternatives separated by `|`
+  --> $DIR/resolve-inconsistent-binding-mode.rs:27:42
+   |
+LL |         Opts::A(ref mut i) | Opts::B(ref i) => {}
+   |                         - first binding  ^ bound in different ways
+
+error[E0308]: mismatched types
+  --> $DIR/resolve-inconsistent-binding-mode.rs:9:34
+   |
+LL |     match x {
+   |           - this expression has type `Opts`
+LL |         Opts::A(ref i) | Opts::B(i) => {}
+   |                 -----            ^ expected `&isize`, found `isize`
+   |                 |
+   |                 first introduced with type `&isize` here
+   |
+   = note: in the same arm, a binding must have the same type in all alternatives
+help: consider adding `ref`
+   |
+LL |         Opts::A(ref i) | Opts::B(ref i) => {}
+   |                                  +++
+
+error[E0308]: mismatched types
+  --> $DIR/resolve-inconsistent-binding-mode.rs:18:34
+   |
+LL |     match x {
+   |           - this expression has type `Opts`
+LL |         Opts::A(ref i) | Opts::B(i) => {}
+   |                 -----            ^ expected `&isize`, found `isize`
+   |                 |
+   |                 first introduced with type `&isize` here
+   |
+   = note: in the same arm, a binding must have the same type in all alternatives
+help: consider adding `ref`
+   |
+LL |         Opts::A(ref i) | Opts::B(ref i) => {}
+   |                                  +++
+
+error[E0308]: mismatched types
+  --> $DIR/resolve-inconsistent-binding-mode.rs:27:38
+   |
+LL |     match x {
+   |           - this expression has type `Opts`
+LL |         Opts::A(ref mut i) | Opts::B(ref i) => {}
+   |                 ---------            ^^^^^ types differ in mutability
+   |                 |
+   |                 first introduced with type `&mut isize` here
+   |
+   = note: expected mutable reference `&mut isize`
+                      found reference `&isize`
+   = note: in the same arm, a binding must have the same type in all alternatives
+
+error: aborting due to 6 previous errors
+
+Some errors have detailed explanations: E0308, E0409.
+For more information about an error, try `rustc --explain E0308`.