error: ambiguous `+` in a type --> $DIR/ty-variance-issue-124423.rs:8:15 | LL | fn elided(_: &impl Copy + 'a) -> _ { x } | ^^^^^^^^^^^^^^ | help: try adding parentheses | LL | fn elided(_: &(impl Copy + 'a)) -> _ { x } | + + error: ambiguous `+` in a type --> $DIR/ty-variance-issue-124423.rs:13:24 | LL | fn explicit<'b>(_: &'a impl Copy + 'a) -> impl 'a { x } | ^^^^^^^^^^^^^^ | help: try adding parentheses | LL | fn explicit<'b>(_: &'a (impl Copy + 'a)) -> impl 'a { x } | + + error: expected identifier, found keyword `impl` --> $DIR/ty-variance-issue-124423.rs:20:13 | LL | fn elided2( impl 'b) -> impl 'a + 'a { x } | ^^^^ expected identifier, found keyword error: expected one of `:` or `|`, found `'b` --> $DIR/ty-variance-issue-124423.rs:20:18 | LL | fn elided2( impl 'b) -> impl 'a + 'a { x } | ^^ expected one of `:` or `|` error: ambiguous `+` in a type --> $DIR/ty-variance-issue-124423.rs:27:25 | LL | fn explicit2<'a>(_: &'a impl Copy + 'a) -> impl Copy + 'a { x } | ^^^^^^^^^^^^^^ | help: try adding parentheses | LL | fn explicit2<'a>(_: &'a (impl Copy + 'a)) -> impl Copy + 'a { x } | + + error: ambiguous `+` in a type --> $DIR/ty-variance-issue-124423.rs:30:16 | LL | fn foo<'a>(_: &impl Copy + 'a) -> impl 'b + 'a { x } | ^^^^^^^^^^^^^^ | help: try adding parentheses | LL | fn foo<'a>(_: &(impl Copy + 'a)) -> impl 'b + 'a { x } | + + error: ambiguous `+` in a type --> $DIR/ty-variance-issue-124423.rs:35:16 | LL | fn elided3(_: &impl Copy + 'a) -> Box { Box::new(x) } | ^^^^^^^^^^^^^^ | help: try adding parentheses | LL | fn elided3(_: &(impl Copy + 'a)) -> Box { Box::new(x) } | + + error: ambiguous `+` in a type --> $DIR/ty-variance-issue-124423.rs:41:17 | LL | fn x<'b>(_: &'a impl Copy + 'a) -> Box { Box::u32(x) } | ^^^^^^^^^^^^^^ | help: try adding parentheses | LL | fn x<'b>(_: &'a (impl Copy + 'a)) -> Box { Box::u32(x) } | + + error: ambiguous `+` in a type --> $DIR/ty-variance-issue-124423.rs:48:16 | LL | fn elided4(_: &impl Copy + 'a) -> new { x(x) } | ^^^^^^^^^^^^^^ | help: try adding parentheses | LL | fn elided4(_: &(impl Copy + 'a)) -> new { x(x) } | + + error: at least one trait must be specified --> $DIR/ty-variance-issue-124423.rs:13:43 | LL | fn explicit<'b>(_: &'a impl Copy + 'a) -> impl 'a { x } | ^^^^^^^ error: at least one trait must be specified --> $DIR/ty-variance-issue-124423.rs:20:25 | LL | fn elided2( impl 'b) -> impl 'a + 'a { x } | ^^^^^^^^^^^^ error: at least one trait must be specified --> $DIR/ty-variance-issue-124423.rs:30:35 | LL | fn foo<'a>(_: &impl Copy + 'a) -> impl 'b + 'a { x } | ^^^^^^^^^^^^ error[E0261]: use of undeclared lifetime name `'a` --> $DIR/ty-variance-issue-124423.rs:8:27 | LL | fn elided(_: &impl Copy + 'a) -> _ { x } | ^^ undeclared lifetime | help: consider introducing lifetime `'a` here | LL | fn elided<'a>(_: &impl Copy + 'a) -> _ { x } | ++++ error[E0261]: use of undeclared lifetime name `'a` --> $DIR/ty-variance-issue-124423.rs:13:21 | LL | fn explicit<'b>(_: &'a impl Copy + 'a) -> impl 'a { x } | ^^ undeclared lifetime | help: consider introducing lifetime `'a` here | LL | fn explicit<'a, 'b>(_: &'a impl Copy + 'a) -> impl 'a { x } | +++ error[E0261]: use of undeclared lifetime name `'a` --> $DIR/ty-variance-issue-124423.rs:13:36 | LL | fn explicit<'b>(_: &'a impl Copy + 'a) -> impl 'a { x } | ^^ undeclared lifetime | help: consider introducing lifetime `'a` here | LL | fn explicit<'a, 'b>(_: &'a impl Copy + 'a) -> impl 'a { x } | +++ error[E0261]: use of undeclared lifetime name `'a` --> $DIR/ty-variance-issue-124423.rs:13:48 | LL | fn explicit<'b>(_: &'a impl Copy + 'a) -> impl 'a { x } | ^^ undeclared lifetime | help: consider introducing lifetime `'a` here | LL | fn explicit<'a, 'b>(_: &'a impl Copy + 'a) -> impl 'a { x } | +++ error[E0261]: use of undeclared lifetime name `'a` --> $DIR/ty-variance-issue-124423.rs:20:30 | LL | fn elided2( impl 'b) -> impl 'a + 'a { x } | ^^ undeclared lifetime | help: consider introducing lifetime `'a` here | LL | fn elided2<'a>( impl 'b) -> impl 'a + 'a { x } | ++++ error[E0261]: use of undeclared lifetime name `'a` --> $DIR/ty-variance-issue-124423.rs:20:35 | LL | fn elided2( impl 'b) -> impl 'a + 'a { x } | ^^ undeclared lifetime | help: consider introducing lifetime `'a` here | LL | fn elided2<'a>( impl 'b) -> impl 'a + 'a { x } | ++++ error[E0261]: use of undeclared lifetime name `'b` --> $DIR/ty-variance-issue-124423.rs:30:40 | LL | fn foo<'a>(_: &impl Copy + 'a) -> impl 'b + 'a { x } | ^^ undeclared lifetime | help: consider introducing lifetime `'b` here | LL | fn foo<'b, 'a>(_: &impl Copy + 'a) -> impl 'b + 'a { x } | +++ error[E0261]: use of undeclared lifetime name `'a` --> $DIR/ty-variance-issue-124423.rs:35:28 | LL | fn elided3(_: &impl Copy + 'a) -> Box { Box::new(x) } | ^^ undeclared lifetime | help: consider introducing lifetime `'a` here | LL | fn elided3<'a>(_: &impl Copy + 'a) -> Box { Box::new(x) } | ++++ error[E0261]: use of undeclared lifetime name `'a` --> $DIR/ty-variance-issue-124423.rs:35:43 | LL | fn elided3(_: &impl Copy + 'a) -> Box { Box::new(x) } | ^^ undeclared lifetime | help: consider introducing lifetime `'a` here | LL | fn elided3<'a>(_: &impl Copy + 'a) -> Box { Box::new(x) } | ++++ error[E0261]: use of undeclared lifetime name `'a` --> $DIR/ty-variance-issue-124423.rs:41:14 | LL | fn x<'b>(_: &'a impl Copy + 'a) -> Box { Box::u32(x) } | ^^ undeclared lifetime | help: consider introducing lifetime `'a` here | LL | fn x<'a, 'b>(_: &'a impl Copy + 'a) -> Box { Box::u32(x) } | +++ error[E0261]: use of undeclared lifetime name `'a` --> $DIR/ty-variance-issue-124423.rs:41:29 | LL | fn x<'b>(_: &'a impl Copy + 'a) -> Box { Box::u32(x) } | ^^ undeclared lifetime | help: consider introducing lifetime `'a` here | LL | fn x<'a, 'b>(_: &'a impl Copy + 'a) -> Box { Box::u32(x) } | +++ error[E0261]: use of undeclared lifetime name `'a` --> $DIR/ty-variance-issue-124423.rs:48:28 | LL | fn elided4(_: &impl Copy + 'a) -> new { x(x) } | ^^ undeclared lifetime | help: consider introducing lifetime `'a` here | LL | fn elided4<'a>(_: &impl Copy + 'a) -> new { x(x) } | ++++ error[E0412]: cannot find type `new` in this scope --> $DIR/ty-variance-issue-124423.rs:48:36 | LL | fn elided4(_: &impl Copy + 'a) -> new { x(x) } | ^^^ not found in this scope error[E0224]: at least one trait is required for an object type --> $DIR/ty-variance-issue-124423.rs:35:39 | LL | fn elided3(_: &impl Copy + 'a) -> Box { Box::new(x) } | ^^^^^^ error[E0224]: at least one trait is required for an object type --> $DIR/ty-variance-issue-124423.rs:41:40 | LL | fn x<'b>(_: &'a impl Copy + 'a) -> Box { Box::u32(x) } | ^^^^^^ error[E0224]: at least one trait is required for an object type --> $DIR/ty-variance-issue-124423.rs:55:40 | LL | impl<'a> LifetimeTrait<'a> for &'a Box {} | ^^^^^^ error[E0121]: the placeholder `_` is not allowed within types on item signatures for return types --> $DIR/ty-variance-issue-124423.rs:8:34 | LL | fn elided(_: &impl Copy + 'a) -> _ { x } | ^ not allowed in type signatures error[E0599]: no function or associated item named `u32` found for struct `Box<_, _>` in the current scope --> $DIR/ty-variance-issue-124423.rs:41:55 | LL | fn x<'b>(_: &'a impl Copy + 'a) -> Box { Box::u32(x) } | ^^^ function or associated item not found in `Box<_, _>` | note: if you're trying to build a new `Box<_, _>` consider using one of the following associated functions: Box::::new Box::::new_uninit Box::::new_zeroed Box::::try_new and 22 others --> $SRC_DIR/alloc/src/boxed.rs:LL:COL error: aborting due to 30 previous errors Some errors have detailed explanations: E0121, E0224, E0261, E0412, E0599. For more information about an error, try `rustc --explain E0121`.