]> git.lizzy.rs Git - rust.git/blob - src/test/ui/polymorphization/too-many-generic-params.rs
Rollup merge of #98654 - nnethercote:pest-2.1.3-opt, r=pnkfelix
[rust.git] / src / test / ui / polymorphization / too-many-generic-params.rs
1 // build-pass
2 #![feature(rustc_attrs)]
3
4 // This test checks that the analysis doesn't panic when there are >64 generic parameters, but
5 // instead considers those parameters used.
6
7 #[rustc_polymorphize_error]
8 fn bar<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, AA,
9        AB, AC, AD, AE, AF, AG, AH, AI, AJ, AK, AL, AM, AN, AO, AP, AQ, AR, AS, AT, AU, AV, AW,
10        AX, AY, AZ, BA, BB, BC, BD, BE, BF, BG, BH, BI, BJ, BK, BL, BM>()
11 {
12     let _: Option<A> = None;
13     let _: Option<B> = None;
14     let _: Option<C> = None;
15     let _: Option<D> = None;
16     let _: Option<E> = None;
17     let _: Option<F> = None;
18     let _: Option<G> = None;
19     let _: Option<H> = None;
20     let _: Option<I> = None;
21     let _: Option<J> = None;
22     let _: Option<K> = None;
23     let _: Option<L> = None;
24     let _: Option<M> = None;
25     let _: Option<N> = None;
26     let _: Option<O> = None;
27     let _: Option<P> = None;
28     let _: Option<Q> = None;
29     let _: Option<R> = None;
30     let _: Option<S> = None;
31     let _: Option<T> = None;
32     let _: Option<U> = None;
33     let _: Option<V> = None;
34     let _: Option<W> = None;
35     let _: Option<X> = None;
36     let _: Option<Y> = None;
37     let _: Option<Z> = None;
38     let _: Option<AA> = None;
39     let _: Option<AB> = None;
40     let _: Option<AC> = None;
41     let _: Option<AD> = None;
42     let _: Option<AE> = None;
43     let _: Option<AF> = None;
44     let _: Option<AG> = None;
45     let _: Option<AH> = None;
46     let _: Option<AI> = None;
47     let _: Option<AJ> = None;
48     let _: Option<AK> = None;
49     let _: Option<AL> = None;
50     let _: Option<AM> = None;
51     let _: Option<AN> = None;
52     let _: Option<AO> = None;
53     let _: Option<AP> = None;
54     let _: Option<AQ> = None;
55     let _: Option<AR> = None;
56     let _: Option<AS> = None;
57     let _: Option<AT> = None;
58     let _: Option<AU> = None;
59     let _: Option<AV> = None;
60     let _: Option<AW> = None;
61     let _: Option<AX> = None;
62     let _: Option<AY> = None;
63     let _: Option<AZ> = None;
64     let _: Option<BA> = None;
65     let _: Option<BB> = None;
66     let _: Option<BC> = None;
67     let _: Option<BD> = None;
68     let _: Option<BE> = None;
69     let _: Option<BF> = None;
70     let _: Option<BG> = None;
71     let _: Option<BH> = None;
72     let _: Option<BI> = None;
73     let _: Option<BJ> = None;
74     let _: Option<BK> = None;
75     let _: Option<BL> = None;
76     let _: Option<BM> = None;
77 }
78
79 fn main() {
80     bar::<u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32,
81           u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32,
82           u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32,
83           u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32, u32,
84           u32>();
85 }