summaryrefslogtreecommitdiffstats
path: root/src/test/ui/unsized/unsized6.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/unsized/unsized6.stderr')
-rw-r--r--src/test/ui/unsized/unsized6.stderr222
1 files changed, 222 insertions, 0 deletions
diff --git a/src/test/ui/unsized/unsized6.stderr b/src/test/ui/unsized/unsized6.stderr
new file mode 100644
index 000000000..011f2b426
--- /dev/null
+++ b/src/test/ui/unsized/unsized6.stderr
@@ -0,0 +1,222 @@
+error[E0277]: the size for values of type `Y` cannot be known at compilation time
+ --> $DIR/unsized6.rs:9:9
+ |
+LL | fn f1<W: ?Sized, X: ?Sized, Y: ?Sized, Z: ?Sized>(x: &X) {
+ | - this type parameter needs to be `std::marker::Sized`
+...
+LL | let y: Y;
+ | ^ doesn't have a size known at compile-time
+ |
+ = note: all local variables must have a statically known size
+ = help: unsized locals are gated as an unstable feature
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+LL - fn f1<W: ?Sized, X: ?Sized, Y: ?Sized, Z: ?Sized>(x: &X) {
+LL + fn f1<W: ?Sized, X: ?Sized, Y, Z: ?Sized>(x: &X) {
+ |
+
+error[E0277]: the size for values of type `X` cannot be known at compilation time
+ --> $DIR/unsized6.rs:7:12
+ |
+LL | fn f1<W: ?Sized, X: ?Sized, Y: ?Sized, Z: ?Sized>(x: &X) {
+ | - this type parameter needs to be `std::marker::Sized`
+LL | let _: W; // <-- this is OK, no bindings created, no initializer.
+LL | let _: (isize, (X, isize));
+ | ^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
+ |
+ = 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 f1<W: ?Sized, X: ?Sized, Y: ?Sized, Z: ?Sized>(x: &X) {
+LL + fn f1<W: ?Sized, X, Y: ?Sized, Z: ?Sized>(x: &X) {
+ |
+
+error[E0277]: the size for values of type `Z` cannot be known at compilation time
+ --> $DIR/unsized6.rs:11:12
+ |
+LL | fn f1<W: ?Sized, X: ?Sized, Y: ?Sized, Z: ?Sized>(x: &X) {
+ | - this type parameter needs to be `std::marker::Sized`
+...
+LL | let y: (isize, (Z, usize));
+ | ^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
+ |
+ = 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 f1<W: ?Sized, X: ?Sized, Y: ?Sized, Z: ?Sized>(x: &X) {
+LL + fn f1<W: ?Sized, X: ?Sized, Y: ?Sized, Z>(x: &X) {
+ |
+
+error[E0277]: the size for values of type `X` cannot be known at compilation time
+ --> $DIR/unsized6.rs:15:9
+ |
+LL | fn f2<X: ?Sized, Y: ?Sized>(x: &X) {
+ | - this type parameter needs to be `std::marker::Sized`
+LL | let y: X;
+ | ^ doesn't have a size known at compile-time
+ |
+ = note: all local variables must have a statically known size
+ = help: unsized locals are gated as an unstable feature
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+LL - fn f2<X: ?Sized, Y: ?Sized>(x: &X) {
+LL + fn f2<X, Y: ?Sized>(x: &X) {
+ |
+
+error[E0277]: the size for values of type `Y` cannot be known at compilation time
+ --> $DIR/unsized6.rs:17:12
+ |
+LL | fn f2<X: ?Sized, Y: ?Sized>(x: &X) {
+ | - this type parameter needs to be `std::marker::Sized`
+...
+LL | let y: (isize, (Y, isize));
+ | ^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
+ |
+ = 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 f2<X: ?Sized, Y: ?Sized>(x: &X) {
+LL + fn f2<X: ?Sized, Y>(x: &X) {
+ |
+
+error[E0277]: the size for values of type `X` cannot be known at compilation time
+ --> $DIR/unsized6.rs:22:9
+ |
+LL | fn f3<X: ?Sized>(x1: Box<X>, x2: Box<X>, x3: Box<X>) {
+ | - this type parameter needs to be `std::marker::Sized`
+LL | let y: X = *x1;
+ | ^ doesn't have a size known at compile-time
+ |
+ = note: all local variables must have a statically known size
+ = help: unsized locals are gated as an unstable feature
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+LL - fn f3<X: ?Sized>(x1: Box<X>, x2: Box<X>, x3: Box<X>) {
+LL + fn f3<X>(x1: Box<X>, x2: Box<X>, x3: Box<X>) {
+ |
+
+error[E0277]: the size for values of type `X` cannot be known at compilation time
+ --> $DIR/unsized6.rs:24:9
+ |
+LL | fn f3<X: ?Sized>(x1: Box<X>, x2: Box<X>, x3: Box<X>) {
+ | - this type parameter needs to be `std::marker::Sized`
+...
+LL | let y = *x2;
+ | ^ doesn't have a size known at compile-time
+ |
+ = note: all local variables must have a statically known size
+ = help: unsized locals are gated as an unstable feature
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+LL - fn f3<X: ?Sized>(x1: Box<X>, x2: Box<X>, x3: Box<X>) {
+LL + fn f3<X>(x1: Box<X>, x2: Box<X>, x3: Box<X>) {
+ |
+
+error[E0277]: the size for values of type `X` cannot be known at compilation time
+ --> $DIR/unsized6.rs:26:10
+ |
+LL | fn f3<X: ?Sized>(x1: Box<X>, x2: Box<X>, x3: Box<X>) {
+ | - this type parameter needs to be `std::marker::Sized`
+...
+LL | let (y, z) = (*x3, 4);
+ | ^ doesn't have a size known at compile-time
+ |
+ = note: all local variables must have a statically known size
+ = help: unsized locals are gated as an unstable feature
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+LL - fn f3<X: ?Sized>(x1: Box<X>, x2: Box<X>, x3: Box<X>) {
+LL + fn f3<X>(x1: Box<X>, x2: Box<X>, x3: Box<X>) {
+ |
+
+error[E0277]: the size for values of type `X` cannot be known at compilation time
+ --> $DIR/unsized6.rs:30:9
+ |
+LL | fn f4<X: ?Sized + T>(x1: Box<X>, x2: Box<X>, x3: Box<X>) {
+ | - this type parameter needs to be `std::marker::Sized`
+LL | let y: X = *x1;
+ | ^ doesn't have a size known at compile-time
+ |
+ = note: all local variables must have a statically known size
+ = help: unsized locals are gated as an unstable feature
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+LL - fn f4<X: ?Sized + T>(x1: Box<X>, x2: Box<X>, x3: Box<X>) {
+LL + fn f4<X: T>(x1: Box<X>, x2: Box<X>, x3: Box<X>) {
+ |
+
+error[E0277]: the size for values of type `X` cannot be known at compilation time
+ --> $DIR/unsized6.rs:32:9
+ |
+LL | fn f4<X: ?Sized + T>(x1: Box<X>, x2: Box<X>, x3: Box<X>) {
+ | - this type parameter needs to be `std::marker::Sized`
+...
+LL | let y = *x2;
+ | ^ doesn't have a size known at compile-time
+ |
+ = note: all local variables must have a statically known size
+ = help: unsized locals are gated as an unstable feature
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+LL - fn f4<X: ?Sized + T>(x1: Box<X>, x2: Box<X>, x3: Box<X>) {
+LL + fn f4<X: T>(x1: Box<X>, x2: Box<X>, x3: Box<X>) {
+ |
+
+error[E0277]: the size for values of type `X` cannot be known at compilation time
+ --> $DIR/unsized6.rs:34:10
+ |
+LL | fn f4<X: ?Sized + T>(x1: Box<X>, x2: Box<X>, x3: Box<X>) {
+ | - this type parameter needs to be `std::marker::Sized`
+...
+LL | let (y, z) = (*x3, 4);
+ | ^ doesn't have a size known at compile-time
+ |
+ = note: all local variables must have a statically known size
+ = help: unsized locals are gated as an unstable feature
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+LL - fn f4<X: ?Sized + T>(x1: Box<X>, x2: Box<X>, x3: Box<X>) {
+LL + fn f4<X: T>(x1: Box<X>, x2: Box<X>, x3: Box<X>) {
+ |
+
+error[E0277]: the size for values of type `X` cannot be known at compilation time
+ --> $DIR/unsized6.rs:38:18
+ |
+LL | fn g1<X: ?Sized>(x: X) {}
+ | - ^ doesn't have a size known at compile-time
+ | |
+ | this type parameter needs to be `std::marker::Sized`
+ |
+ = help: unsized fn params are gated as an unstable feature
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+LL - fn g1<X: ?Sized>(x: X) {}
+LL + fn g1<X>(x: X) {}
+ |
+help: function arguments must have a statically known size, borrowed types always have a known size
+ |
+LL | fn g1<X: ?Sized>(x: &X) {}
+ | +
+
+error[E0277]: the size for values of type `X` cannot be known at compilation time
+ --> $DIR/unsized6.rs:40:22
+ |
+LL | fn g2<X: ?Sized + T>(x: X) {}
+ | - ^ doesn't have a size known at compile-time
+ | |
+ | this type parameter needs to be `std::marker::Sized`
+ |
+ = help: unsized fn params are gated as an unstable feature
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+LL - fn g2<X: ?Sized + T>(x: X) {}
+LL + fn g2<X: T>(x: X) {}
+ |
+help: function arguments must have a statically known size, borrowed types always have a known size
+ |
+LL | fn g2<X: ?Sized + T>(x: &X) {}
+ | +
+
+error: aborting due to 13 previous errors
+
+For more information about this error, try `rustc --explain E0277`.