| error[E0423]: expected value, found trait `SomeTrait` |
| --> $DIR/E0033-teach.rs:18:33 |
| | |
| LL | let trait_obj: &SomeTrait = SomeTrait; |
| | ^^^^^^^^^ not a value |
| |
| error[E0038]: the trait `SomeTrait` cannot be made into an object |
| --> $DIR/E0033-teach.rs:18:20 |
| | |
| LL | let trait_obj: &SomeTrait = SomeTrait; |
| | ^^^^^^^^^^ the trait `SomeTrait` cannot be made into an object |
| | |
| = note: method `foo` has no receiver |
| |
| error[E0033]: type `&dyn SomeTrait` cannot be dereferenced |
| --> $DIR/E0033-teach.rs:23:9 |
| | |
| LL | let &invalid = trait_obj; |
| | ^^^^^^^^ type `&dyn SomeTrait` cannot be dereferenced |
| | |
| = note: This error indicates that a pointer to a trait type cannot be implicitly dereferenced by a pattern. Every trait defines a type, but because the size of trait implementors isn't fixed, this type has no compile-time size. Therefore, all accesses to trait types must be through pointers. If you encounter this error you should try to avoid dereferencing the pointer. |
| |
| You can read more about trait objects in the Trait Objects section of the Reference: https://doc.rust-lang.org/reference/types.html#trait-objects |
| |
| error: aborting due to 3 previous errors |
| |
| Some errors occurred: E0033, E0038, E0423. |
| For more information about an error, try `rustc --explain E0033`. |