error[E0308]: mismatched types
  --> $DIR/boxed-variant-field.rs:9:31
   |
LL |         Ty::List(elem) => foo(elem),
   |                           --- ^^^^ expected `Ty`, found `Box<Ty>`
   |                           |
   |                           arguments to this function are incorrect
   |
   = note: expected enum `Ty`
            found struct `Box<Ty>`
note: function defined here
  --> $DIR/boxed-variant-field.rs:6:4
   |
LL | fn foo(x: Ty) -> Ty {
   |    ^^^ -----
help: consider unboxing the value
   |
LL |         Ty::List(elem) => foo(*elem),
   |                               +

error: aborting due to previous error

For more information about this error, try `rustc --explain E0308`.