]> git.lizzy.rs Git - rust.git/blob - src/test/ui/polymorphization/const_parameters/functions.rs
Rollup merge of #87440 - twetzel59:fix-barrier-no-op, r=yaahc
[rust.git] / src / test / ui / polymorphization / const_parameters / functions.rs
1 // build-fail
2 // compile-flags:-Zpolymorphize=on
3 #![feature(generic_const_exprs, rustc_attrs)]
4 //~^ WARN the feature `generic_const_exprs` is incomplete
5
6 // This test checks that the polymorphization analysis correctly detects unused const
7 // parameters in functions.
8
9 // Function doesn't have any generic parameters to be unused.
10 #[rustc_polymorphize_error]
11 pub fn no_parameters() {}
12
13 // Function has an unused generic parameter.
14 #[rustc_polymorphize_error]
15 pub fn unused<const T: usize>() {
16     //~^ ERROR item has unused generic parameters
17 }
18
19 // Function uses generic parameter in value of a binding.
20 #[rustc_polymorphize_error]
21 pub fn used_binding<const T: usize>() -> usize {
22     let x: usize = T;
23     x
24 }
25
26 // Function uses generic parameter in substitutions to another function.
27 #[rustc_polymorphize_error]
28 pub fn used_substs<const T: usize>() {
29     unused::<T>()
30 }
31
32 fn main() {
33     no_parameters();
34     unused::<1>();
35     used_binding::<1>();
36     used_substs::<1>();
37 }