From 81ab26c99a4775c613ff30e18fe0ee01661a635e Mon Sep 17 00:00:00 2001 From: "leonardo.yvens" Date: Mon, 5 Feb 2018 21:51:58 -0200 Subject: [PATCH] Add tests for dependent defaults. --- src/test/run-pass/defaults-well-formedness.rs | 2 ++ src/test/ui/type-check-defaults.rs | 4 ++++ src/test/ui/type-check-defaults.stderr | 11 ++++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/test/run-pass/defaults-well-formedness.rs b/src/test/run-pass/defaults-well-formedness.rs index 6a7b1c51ccd2..60e78e29afd8 100644 --- a/src/test/run-pass/defaults-well-formedness.rs +++ b/src/test/run-pass/defaults-well-formedness.rs @@ -19,5 +19,7 @@ struct IndividuallyBogus(TwoParams) where TwoParams(TwoParams) where TwoParams: Marker; struct DefaultedLhs(U, V) where V: Trait; +// Dependent defaults. +struct Dependent(T, U) where U: Copy; fn main() {} diff --git a/src/test/ui/type-check-defaults.rs b/src/test/ui/type-check-defaults.rs index ff3fb44bb264..d57b39464806 100644 --- a/src/test/ui/type-check-defaults.rs +++ b/src/test/ui/type-check-defaults.rs @@ -47,4 +47,8 @@ trait Bar {} impl Bar for u32 { } impl Bar for String { } +// Dependent defaults. +struct Dependent(T, U) where U: Copy; +//~^ the trait bound `T: std::marker::Copy` is not satisfied [E0277] + fn main() { } diff --git a/src/test/ui/type-check-defaults.stderr b/src/test/ui/type-check-defaults.stderr index 412a7966f0aa..032e80cdb148 100644 --- a/src/test/ui/type-check-defaults.stderr +++ b/src/test/ui/type-check-defaults.stderr @@ -102,5 +102,14 @@ note: required by `Bar` 46 | trait Bar {} | ^^^^^^^^^^^^ -error: aborting due to 10 previous errors +error[E0277]: the trait bound `T: std::marker::Copy` is not satisfied + --> $DIR/type-check-defaults.rs:51:1 + | +51 | struct Dependent(T, U) where U: Copy; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `T` + | + = help: consider adding a `where T: std::marker::Copy` bound + = note: required by `std::marker::Copy` + +error: aborting due to 11 previous errors