]> git.proxmox.com Git - rustc.git/blame - src/test/ui/polymorphization/const_parameters/functions.rs
New upstream version 1.56.0~beta.4+dfsg1
[rustc.git] / src / test / ui / polymorphization / const_parameters / functions.rs
CommitLineData
3dfed10e
XL
1// build-fail
2// compile-flags:-Zpolymorphize=on
94222f64
XL
3#![feature(generic_const_exprs, rustc_attrs)]
4//~^ WARN the feature `generic_const_exprs` is incomplete
3dfed10e
XL
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]
11pub fn no_parameters() {}
12
13// Function has an unused generic parameter.
14#[rustc_polymorphize_error]
15pub 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]
21pub 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]
28pub fn used_substs<const T: usize>() {
29 unused::<T>()
30}
31
32fn main() {
33 no_parameters();
34 unused::<1>();
35 used_binding::<1>();
36 used_substs::<1>();
37}