diff options
Diffstat (limited to 'src/test/ui/polymorphization/predicates.rs')
| -rw-r--r-- | src/test/ui/polymorphization/predicates.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/test/ui/polymorphization/predicates.rs b/src/test/ui/polymorphization/predicates.rs new file mode 100644 index 00000000000..49f8668cff8 --- /dev/null +++ b/src/test/ui/polymorphization/predicates.rs @@ -0,0 +1,21 @@ +// build-fail +// compile-flags: -Zpolymorphize-errors + +// This test checks that `T` is considered used in `foo`, because it is used in a predicate for +// `I`, which is used. + +fn bar<I>() { +//~^ ERROR item has unused generic parameters +} + +fn foo<I, T>(_: I) +where + I: Iterator<Item = T>, +{ + bar::<I>() +} + +fn main() { + let x = &[2u32]; + foo(x.iter()); +} |
