aboutsummaryrefslogtreecommitdiff
path: root/compiler/tests/verifier/expr_types_numbers.good
blob: 3b871efad3c9bbda9768688d97cca2529b372eb6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123


() test() {

    // Define variables first
    var count c = 0;

    var short   s = 0;
    var ushort us = 0;
    var int     i = 0;
    var uint   ui = 0;
    var long    l = 0;
    var ulong  ul = 0;
    var longlong ll = 0;
    var ulonglong ull = 0;

    var int8    i8 = 0;
    var uint8   u8 = 0;
    var byte    by = 0;
    var int16   i16 = 0;
    var uint16  u16 = 0;
    var int32   i32 = 0;
    var uint32  u32 = 0;
    var int64   i64 = 0;
    var uint64  u64 = 0;
    var int128  i128 = 0;
    var uint128 u128 = 0;
    
    var wcount     wc = 0;
    var wuint8     w8 = 0;
    var wuint16    w16 = 0;
    var wuint32    w32 = 0;
    var wuint64    w64 = 0;
    var wuint128   w128 = 0;
    
    var wushort    ws = 0;
    var wuint      wi = 0;
    var wulong     wl = 0;
    var wulonglong wll = 0;
    
    var float   f = 0;
    var float16 f16 = 0;
    var float32 f32 = 0;
    var float64 f64 = 0;
    var float80 f80 = 0;
    var float128 f128 = 0;
    
    var cfloat      cf = 0;
    var cdouble     cd = 0;
    var clongdouble cld = 0;
    
    var bool b = :false;
    
    
    // These should work
    c = u8; c = u16;
    c = w8; c = w16;
    
    s = i8;
    us = u8;
    us = w8;
    us = ws;
    i = i8; i = i16;
    i = u8;
    i = w8;
    ui = u8; ui = u16;
    ui = w8; ui = w16;
    ui = ws; ui = wi;
    l = i8; l = i16; l = i32;
    l = u8; l = u16;
    l = w8; l = w16;
    ul = u8; ul = u16; ul = u32;
    ul = w8; ul = w16; ul = w32;
    ul = ws; ul = wi; ul = wl;
    ll = i8; ll = i16; ll = i32;
    ll = u8; ll = u16;
    ll = w8; ll = w16;
    ull = u8; ull = u16; ull = u32;
    ull = w8; ull = w16; ull = w32;
    ull = ws; ull = wi; ull = wl; ull = wll;
    
    i8 = i8;
    u8 = u8;
    by = i8; // byte can be assigned to/from uint8 and int8
    by = u8;
    i8 = by;
    u8 = by;
    u8 = w8;
    i16 = i8; i16 = i16;
    i16 = u8;
    i16 = w8;
    u16 = u8; u16 = u16;
    u16 = w8; w16 = w16;
    i32 = i8; i32 = i16; i32 = i32;
    i32 = u8; i32 = u16;
    i32 = w8; i32 = w16;
    u32 = u8; u32 = u16; u32 = u32;
    u32 = w8; u32 = w16; u32 = w32;
    i64 = i8; i64 = i16; i64 = i32; i64 = i64;
    i64 = u8; i64 = u16; i64 = u32;
    i64 = w8; i64 = w16; i64 = w32;
    u64 = u8; u64 = u16; u64 = u32; u64 = u64;
    u64 = w8; u64 = w16; u64 = w32; u64 = w64;
    i128 = i8; i128 = i16; i128 = i32; i128 = i64;  i128 = i128;
    i128 = u8; i128 = u16; i128 = u32; i128 = u64;
    i128 = w8; i128 = w16; i128 = w32; i128 = w64;
    u128 = u8; u128 = u16; u128 = u32; u128 = u64; u128 = u128;
    u128 = w8; u128 = w16; u128 = w32; u128 = w64; u128 = w128;
    
    wc = u8; wc = u16;
    wc = c; wc = wc;
    c = wc;
    ws = us; ws = u8;
    wi = ui; wi = ws; wi = ui; wi = u16;
    wl = ul; wl = wi; wl = u32;
    wll = ull; wll = wl; wll = u64;
    
    f = f;
    f = i8; f = u8; f = w8; f = i16; f = u16; f = w16;
    // TODO test all other float types
}