error[E0277]: the size for values of type `X` cannot be known at compilation time --> $DIR/unsized3.rs:7:10 | LL | fn f1(x: &X) { | - this type parameter needs to be `Sized` LL | f2::(x); | ^ doesn't have a size known at compile-time | note: required by a bound in `f2` --> $DIR/unsized3.rs:10:7 | LL | fn f2(x: &X) { | ^ required by this bound in `f2` help: consider removing the `?Sized` bound to make the type parameter `Sized` | LL - fn f1(x: &X) { LL + fn f1(x: &X) { | help: consider relaxing the implicit `Sized` restriction | LL | fn f2(x: &X) { | ++++++++ error[E0277]: the size for values of type `X` cannot be known at compilation time --> $DIR/unsized3.rs:18:10 | LL | fn f3(x: &X) { | - this type parameter needs to be `Sized` LL | f4::(x); | ^ doesn't have a size known at compile-time | note: required by a bound in `f4` --> $DIR/unsized3.rs:21:7 | LL | fn f4(x: &X) { | ^ required by this bound in `f4` help: consider removing the `?Sized` bound to make the type parameter `Sized` | LL - fn f3(x: &X) { LL + fn f3(x: &X) { | help: consider relaxing the implicit `Sized` restriction | LL | fn f4(x: &X) { | ++++++++ error[E0277]: the size for values of type `X` cannot be known at compilation time --> $DIR/unsized3.rs:33:8 | LL | fn f8(x1: &S, x2: &S) { | - this type parameter needs to be `Sized` LL | f5(x1); | -- ^^ doesn't have a size known at compile-time | | | required by a bound introduced by this call | note: required because it appears within the type `S` --> $DIR/unsized3.rs:28:8 | LL | struct S { | ^ note: required by a bound in `f5` --> $DIR/unsized3.rs:24:7 | LL | fn f5(x: &Y) {} | ^ required by this bound in `f5` help: consider removing the `?Sized` bound to make the type parameter `Sized` | LL - fn f8(x1: &S, x2: &S) { LL + fn f8(x1: &S, x2: &S) { | help: consider relaxing the implicit `Sized` restriction | LL | fn f5(x: &Y) {} | ++++++++ error[E0277]: the size for values of type `X` cannot be known at compilation time --> $DIR/unsized3.rs:40:5 | LL | fn f9(x1: Box>) { | - this type parameter needs to be `Sized` LL | f5(&(*x1, 34)); | ^^ doesn't have a size known at compile-time | note: required because it appears within the type `S` --> $DIR/unsized3.rs:28:8 | LL | struct S { | ^ = note: only the last element of a tuple may have a dynamically sized type help: consider removing the `?Sized` bound to make the type parameter `Sized` | LL - fn f9(x1: Box>) { LL + fn f9(x1: Box>) { | error[E0277]: the size for values of type `X` cannot be known at compilation time --> $DIR/unsized3.rs:45:9 | LL | fn f10(x1: Box>) { | - this type parameter needs to be `Sized` LL | f5(&(32, *x1)); | ^^^^^^^^^ doesn't have a size known at compile-time | note: required because it appears within the type `S` --> $DIR/unsized3.rs:28:8 | LL | struct S { | ^ = note: required because it appears within the type `({integer}, S)` = note: tuples must have a statically known size to be initialized help: consider removing the `?Sized` bound to make the type parameter `Sized` | LL - fn f10(x1: Box>) { LL + fn f10(x1: Box>) { | error[E0277]: the size for values of type `X` cannot be known at compilation time --> $DIR/unsized3.rs:45:8 | LL | fn f10(x1: Box>) { | - this type parameter needs to be `Sized` LL | f5(&(32, *x1)); | -- ^^^^^^^^^^ doesn't have a size known at compile-time | | | required by a bound introduced by this call | note: required because it appears within the type `S` --> $DIR/unsized3.rs:28:8 | LL | struct S { | ^ = note: required because it appears within the type `({integer}, S)` note: required by a bound in `f5` --> $DIR/unsized3.rs:24:7 | LL | fn f5(x: &Y) {} | ^ required by this bound in `f5` help: consider removing the `?Sized` bound to make the type parameter `Sized` | LL - fn f10(x1: Box>) { LL + fn f10(x1: Box>) { | help: consider relaxing the implicit `Sized` restriction | LL | fn f5(x: &Y) {} | ++++++++ error: aborting due to 6 previous errors For more information about this error, try `rustc --explain E0277`.