error[E0055]: reached the recursion limit while auto-dereferencing `J`
  --> $DIR/issue-38940.rs:43:22
   |
LL |     let x: &Bottom = &t;
   |                      ^^ deref recursion limit reached
   |
   = help: consider increasing the recursion limit by adding a `#![recursion_limit = "20"]` attribute to your crate (`issue_38940`)

error[E0308]: mismatched types
  --> $DIR/issue-38940.rs:43:22
   |
LL |     let x: &Bottom = &t;
   |            -------   ^^ expected struct `Bottom`, found struct `Top`
   |            |
   |            expected due to this
   |
   = note: expected reference `&Bottom`
              found reference `&Top`

error: aborting due to 2 previous errors

Some errors have detailed explanations: E0055, E0308.
For more information about an error, try `rustc --explain E0055`.
