error: lifetime bounds may not be parenthesized
  --> $DIR/trait-object-lifetime-parens.rs:9:21
   |
LL | fn f<'a, T: Trait + ('a)>() {}
   |                     ^^^^
   |
help: remove the parentheses
   |
LL - fn f<'a, T: Trait + ('a)>() {}
LL + fn f<'a, T: Trait + 'a>() {}
   |

error: lifetime bounds may not be parenthesized
  --> $DIR/trait-object-lifetime-parens.rs:12:24
   |
LL |     let _: Box<Trait + ('a)>;
   |                        ^^^^
   |
help: remove the parentheses
   |
LL -     let _: Box<Trait + ('a)>;
LL +     let _: Box<Trait + 'a>;
   |

error: expected type, found lifetime
  --> $DIR/trait-object-lifetime-parens.rs:16:17
   |
LL |     let _: Box<('a) + Trait>;
   |                 ^^ expected type

error[E0178]: expected a path on the left-hand side of `+`
  --> $DIR/trait-object-lifetime-parens.rs:16:16
   |
LL |     let _: Box<('a) + Trait>;
   |                ^^^^ expected a path

error[E0782]: expected a type, found a trait
  --> $DIR/trait-object-lifetime-parens.rs:12:16
   |
LL |     let _: Box<Trait + ('a)>;
   |                ^^^^^^^^^^^^
   |
help: you can add the `dyn` keyword if you want a trait object
   |
LL |     let _: Box<dyn Trait + ('a)>;
   |                +++

error: aborting due to 5 previous errors

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