]> git.proxmox.com Git - rustc.git/blame - src/test/ui/consts/const-binops.rs
Merge branch 'debian/sid' into debian/experimental
[rustc.git] / src / test / ui / consts / const-binops.rs
CommitLineData
b7449926 1// run-pass
c34b1796 2
1a4d82fc
JJ
3macro_rules! assert_approx_eq {
4 ($a:expr, $b:expr) => ({
1a4d82fc
JJ
5 let (a, b) = (&$a, &$b);
6 assert!((*a - *b).abs() < 1.0e-6,
7 "{} is not approximately equal to {}", *a, *b);
8 })
9}
10
c34b1796
AL
11static A: isize = -4 + 3;
12static A2: usize = 3 + 3;
1a4d82fc 13static B: f64 = 3.0 + 2.7;
970d7e83 14
c34b1796
AL
15static C: isize = 3 - 4;
16static D: usize = 3 - 3;
1a4d82fc 17static E: f64 = 3.0 - 2.7;
970d7e83 18
c34b1796
AL
19static E2: isize = -3 * 3;
20static F: usize = 3 * 3;
1a4d82fc 21static G: f64 = 3.3 * 3.3;
970d7e83 22
c34b1796
AL
23static H: isize = 3 / -1;
24static I: usize = 3 / 3;
1a4d82fc 25static J: f64 = 3.3 / 3.3;
970d7e83 26
1a4d82fc 27static N: bool = true && false;
970d7e83 28
1a4d82fc 29static O: bool = true || false;
970d7e83 30
c34b1796
AL
31static P: isize = 3 & 1;
32static Q: usize = 1 & 3;
970d7e83 33
c34b1796
AL
34static R: isize = 3 | 1;
35static S: usize = 1 | 3;
970d7e83 36
c34b1796
AL
37static T: isize = 3 ^ 1;
38static U: usize = 1 ^ 3;
970d7e83 39
c34b1796 40static V: isize = 1 << 3;
970d7e83
LB
41
42// NOTE: better shr coverage
c34b1796
AL
43static W: isize = 1024 >> 4;
44static X: usize = 1024 >> 4;
970d7e83 45
85aaf69f 46static Y: bool = 1 == 1;
1a4d82fc 47static Z: bool = 1.0f64 == 1.0;
970d7e83 48
85aaf69f
SL
49static AA: bool = 1 <= 2;
50static AB: bool = -1 <= 2;
1a4d82fc 51static AC: bool = 1.0f64 <= 2.0;
970d7e83 52
85aaf69f
SL
53static AD: bool = 1 < 2;
54static AE: bool = -1 < 2;
1a4d82fc 55static AF: bool = 1.0f64 < 2.0;
970d7e83 56
85aaf69f
SL
57static AG: bool = 1 != 2;
58static AH: bool = -1 != 2;
1a4d82fc 59static AI: bool = 1.0f64 != 2.0;
970d7e83 60
85aaf69f
SL
61static AJ: bool = 2 >= 1;
62static AK: bool = 2 >= -2;
1a4d82fc 63static AL: bool = 1.0f64 >= -2.0;
970d7e83 64
85aaf69f
SL
65static AM: bool = 2 > 1;
66static AN: bool = 2 > -2;
1a4d82fc 67static AO: bool = 1.0f64 > -2.0;
970d7e83 68
1a4d82fc
JJ
69pub fn main() {
70 assert_eq!(A, -1);
71 assert_eq!(A2, 6);
72 assert_approx_eq!(B, 5.7);
970d7e83 73
1a4d82fc
JJ
74 assert_eq!(C, -1);
75 assert_eq!(D, 0);
76 assert_approx_eq!(E, 0.3);
970d7e83 77
1a4d82fc
JJ
78 assert_eq!(E2, -9);
79 assert_eq!(F, 9);
80 assert_approx_eq!(G, 10.89);
970d7e83 81
1a4d82fc
JJ
82 assert_eq!(H, -3);
83 assert_eq!(I, 1);
84 assert_approx_eq!(J, 1.0);
970d7e83 85
1a4d82fc 86 assert_eq!(N, false);
970d7e83 87
1a4d82fc 88 assert_eq!(O, true);
970d7e83 89
1a4d82fc
JJ
90 assert_eq!(P, 1);
91 assert_eq!(Q, 1);
970d7e83 92
1a4d82fc
JJ
93 assert_eq!(R, 3);
94 assert_eq!(S, 3);
970d7e83 95
1a4d82fc
JJ
96 assert_eq!(T, 2);
97 assert_eq!(U, 2);
970d7e83 98
1a4d82fc 99 assert_eq!(V, 8);
970d7e83 100
1a4d82fc
JJ
101 assert_eq!(W, 64);
102 assert_eq!(X, 64);
970d7e83 103
1a4d82fc
JJ
104 assert_eq!(Y, true);
105 assert_eq!(Z, true);
970d7e83 106
1a4d82fc
JJ
107 assert_eq!(AA, true);
108 assert_eq!(AB, true);
109 assert_eq!(AC, true);
970d7e83 110
1a4d82fc
JJ
111 assert_eq!(AD, true);
112 assert_eq!(AE, true);
113 assert_eq!(AF, true);
970d7e83 114
1a4d82fc
JJ
115 assert_eq!(AG, true);
116 assert_eq!(AH, true);
117 assert_eq!(AI, true);
970d7e83 118
1a4d82fc
JJ
119 assert_eq!(AJ, true);
120 assert_eq!(AK, true);
121 assert_eq!(AL, true);
970d7e83 122
1a4d82fc
JJ
123 assert_eq!(AM, true);
124 assert_eq!(AN, true);
125 assert_eq!(AO, true);
970d7e83 126}