1 // Ensure constant and array length values are not taken from source
2 // code, which wreaks havoc with macros.
8 // @has issue_33302/constant.CST.html \
9 // '//pre[@class="rust const"]' 'pub const CST: i32'
10 pub const CST: i32 = ($n * $n);
11 // @has issue_33302/static.ST.html \
12 // '//pre[@class="rust static"]' 'pub static ST: i32'
13 pub static ST: i32 = ($n * $n);
18 // @has issue_33302/trait.T.html \
19 // '//*[@class="rust trait"]' 'const D: i32'
20 // @has - '//*[@id="associatedconstant.D"]' 'const D: i32'
21 const D: i32 = ($n * $n);
24 // @has issue_33302/struct.S.html \
25 // '//*[@class="impl has-srclink"]' 'impl T<[i32; 16]> for S'
26 // @has - '//*[@id="associatedconstant.C"]' 'const C: [i32; 16]'
27 // @has - '//*[@id="associatedconstant.D"]' 'const D: i32'
28 impl T<[i32; ($n * $n)]> for S {
29 const C: [i32; ($n * $n)] = [0; ($n * $n)];
32 // @has issue_33302/struct.S.html \
33 // '//*[@class="impl has-srclink"]' 'impl T<[i32; 16]> for S'
34 // @has - '//*[@id="associatedconstant.C-1"]' 'const C: (i32,)'
35 // @has - '//*[@id="associatedconstant.D-1"]' 'const D: i32'
36 impl T<(i32,)> for S {
37 const C: (i32,) = ($n,);
40 // @has issue_33302/struct.S.html \
41 // '//*[@class="impl has-srclink"]' 'impl T<(i32, i32)> for S'
42 // @has - '//*[@id="associatedconstant.C-2"]' 'const C: (i32, i32)'
43 // @has - '//*[@id="associatedconstant.D-2"]' 'const D: i32'
44 impl T<(i32, i32)> for S {
45 const C: (i32, i32) = ($n, $n);
46 const D: i32 = ($n / $n);