about summary refs log tree commit diff
path: root/tests/ui/traits/trait-object-destructure.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/traits/trait-object-destructure.stderr')
-rw-r--r--tests/ui/traits/trait-object-destructure.stderr65
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/ui/traits/trait-object-destructure.stderr b/tests/ui/traits/trait-object-destructure.stderr
new file mode 100644
index 00000000000..c7c832dc40a
--- /dev/null
+++ b/tests/ui/traits/trait-object-destructure.stderr
@@ -0,0 +1,65 @@
+error[E0033]: type `&dyn T` cannot be dereferenced
+  --> $DIR/trait-object-destructure.rs:21:9
+   |
+LL |     let &x = &1isize as &dyn T;
+   |         ^^ type `&dyn T` cannot be dereferenced
+
+error[E0033]: type `&dyn T` cannot be dereferenced
+  --> $DIR/trait-object-destructure.rs:22:10
+   |
+LL |     let &&x = &(&1isize as &dyn T);
+   |          ^^ type `&dyn T` cannot be dereferenced
+
+error[E0033]: type `Box<dyn T>` cannot be dereferenced
+  --> $DIR/trait-object-destructure.rs:23:9
+   |
+LL |     let box x = Box::new(1isize) as Box<dyn T>;
+   |         ^^^^^ type `Box<dyn T>` cannot be dereferenced
+
+error[E0308]: mismatched types
+  --> $DIR/trait-object-destructure.rs:26:10
+   |
+LL |     let &&x = &1isize as &dyn T;
+   |          ^^   ----------------- this expression has type `&dyn T`
+   |          |
+   |          expected `dyn T`, found `&_`
+   |
+   = note: expected trait object `dyn T`
+                 found reference `&_`
+help: consider removing `&` from the pattern
+   |
+LL -     let &&x = &1isize as &dyn T;
+LL +     let &x = &1isize as &dyn T;
+   |
+
+error[E0308]: mismatched types
+  --> $DIR/trait-object-destructure.rs:27:11
+   |
+LL |     let &&&x = &(&1isize as &dyn T);
+   |           ^^   -------------------- this expression has type `&&dyn T`
+   |           |
+   |           expected `dyn T`, found `&_`
+   |
+   = note: expected trait object `dyn T`
+                 found reference `&_`
+help: consider removing `&` from the pattern
+   |
+LL -     let &&&x = &(&1isize as &dyn T);
+LL +     let &&x = &(&1isize as &dyn T);
+   |
+
+error[E0308]: mismatched types
+  --> $DIR/trait-object-destructure.rs:28:13
+   |
+LL |     let box box x = Box::new(1isize) as Box<dyn T>;
+   |             ^^^^^   ------------------------------ this expression has type `Box<dyn T>`
+   |             |
+   |             expected `dyn T`, found `Box<_>`
+   |
+   = note: expected trait object `dyn T`
+                    found struct `Box<_>`
+
+error: aborting due to 6 previous errors
+
+Some errors have detailed explanations: E0033, E0308.
+For more information about an error, try `rustc --explain E0033`.