|  | // Test for #124423, which causes an ice bug: only `variances_of` returns `&[ty::Variance]` | 
|  | // | 
|  | //@ compile-flags: -Z threads=16 | 
|  | //@ compare-output-by-lines | 
|  |  | 
|  | use std::fmt::Debug; | 
|  |  | 
|  | fn elided(_: &impl Copy + 'a) -> _ { x } | 
|  | //~^ ERROR ambiguous `+` in a type | 
|  | //~| ERROR use of undeclared lifetime name `'a` | 
|  | //~| ERROR the placeholder `_` is not allowed within types on item signatures for return types | 
|  |  | 
|  | fn explicit<'b>(_: &'a impl Copy + 'a) -> impl 'a { x } | 
|  | //~^ ERROR ambiguous `+` in a type | 
|  | //~| ERROR at least one trait must be specified | 
|  | //~| ERROR use of undeclared lifetime name `'a` | 
|  | //~| ERROR use of undeclared lifetime name `'a` | 
|  | //~| ERROR use of undeclared lifetime name `'a` | 
|  |  | 
|  | fn elided2( impl 'b) -> impl 'a + 'a { x } | 
|  | //~^ ERROR expected one of `:` or `|`, found `'b` | 
|  | //~| ERROR expected identifier, found keyword `impl` | 
|  | //~| ERROR at least one trait must be specified | 
|  | //~| ERROR use of undeclared lifetime name `'a` | 
|  | //~| ERROR use of undeclared lifetime name `'a` | 
|  |  | 
|  | fn explicit2<'a>(_: &'a impl Copy + 'a) -> impl Copy + 'a { x } | 
|  | //~^ ERROR ambiguous `+` in a type | 
|  |  | 
|  | fn foo<'a>(_: &impl Copy + 'a) -> impl 'b + 'a { x } | 
|  | //~^ ERROR ambiguous `+` in a type | 
|  | //~| ERROR at least one trait must be specified | 
|  | //~| ERROR use of undeclared lifetime name `'b` | 
|  |  | 
|  | fn elided3(_: &impl Copy + 'a) -> Box<dyn 'a> { Box::new(x) } | 
|  | //~^ ERROR ambiguous `+` in a type | 
|  | //~| ERROR use of undeclared lifetime name `'a` | 
|  | //~| ERROR use of undeclared lifetime name `'a` | 
|  | //~| ERROR at least one trait is required for an object type | 
|  |  | 
|  | fn x<'b>(_: &'a impl Copy + 'a) -> Box<dyn 'b> { Box::u32(x) } | 
|  | //~^ ERROR ambiguous `+` in a type | 
|  | //~| ERROR use of undeclared lifetime name `'a` | 
|  | //~| ERROR use of undeclared lifetime name `'a` | 
|  | //~| ERROR at least one trait is required for an object type | 
|  | //~| ERROR no function or associated item named `u32` found for struct `Box<_, _>` in the current scope | 
|  |  | 
|  | fn elided4(_: &impl Copy + 'a) ->  new  { x(x) } | 
|  | //~^ ERROR ambiguous `+` in a type | 
|  | //~| ERROR use of undeclared lifetime name `'a` | 
|  | //~| ERROR cannot find type `new` in this scope | 
|  |  | 
|  | trait LifetimeTrait<'a> {} | 
|  |  | 
|  | impl<'a> LifetimeTrait<'a> for &'a Box<dyn 'a> {} | 
|  | //~^ ERROR at least one trait is required for an object type | 
|  |  | 
|  | fn main() {} |