error[E0282]: type annotations needed for `B<T>`
  --> $DIR/issue-17551.rs:6:9
   |
LL |     let foo = B(marker::PhantomData);
   |         ^^^
   |
help: consider giving `foo` an explicit type, where the type for type parameter `T` is specified
   |
LL |     let foo: B<T> = B(marker::PhantomData);
   |            ++++++

error: aborting due to previous error

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