diff options
| author | David Wood <david@davidtw.co> | 2020-06-22 13:57:03 +0100 |
|---|---|---|
| committer | David Wood <david@davidtw.co> | 2020-07-20 19:35:30 +0100 |
| commit | 2989fea88a489a01b3e2243bb84b0ec20b8a0e28 (patch) | |
| tree | 3fc7bedb5e5c8531c204b79510f7d61dd33f1e65 /src/test/ui/polymorphization/predicates.rs | |
| parent | 47756bb0faaf49be5c4086fd0fdbdd57f055781b (diff) | |
| download | rust-2989fea88a489a01b3e2243bb84b0ec20b8a0e28.tar.gz rust-2989fea88a489a01b3e2243bb84b0ec20b8a0e28.zip | |
mir: `unused_generic_params` query
This commit implements the `unused_generic_params` query, an initial version of polymorphization which detects when an item does not use generic parameters and is being needlessly monomorphized as a result. Signed-off-by: David Wood <david@davidtw.co>
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()); +} |
