4 // https://issues.dlang.org/show_bug.cgi?id=19627
5 enum int[4] fail19627
= cast(int[4])int4(0);
7 // https://issues.dlang.org/show_bug.cgi?id=19628
8 enum ice19628a
= int4
.init
[0];
9 enum ice19628b
= int4
.init
.array
[0];
10 enum ice19628c
= (cast(int[4])int4
.init
.array
)[0];
11 enum ice19628d
= (cast(int[4])int4
.init
)[0];
13 // https://issues.dlang.org/show_bug.cgi?id=19629
14 enum fail19629a
= int4(0)[0];
15 enum fail19629b
= int4(0).array
[0];
16 enum fail19629c
= (cast(int[4])int4(0).array
)[0];
17 enum fail19628d
= (cast(int[4])int4(0))[0];
19 // https://issues.dlang.org/show_bug.cgi?id=19630
20 enum fail19630a
= int4
.init
[1..2];
21 enum fail19630b
= int4
.init
.array
[1..2];
22 enum fail19630c
= (cast(int[4])int4
.init
.array
)[1..2];
23 enum fail19630d
= int4(0)[1..2];
24 enum fail19630e
= int4(0).array
[1..2];
25 enum fail19630f
= (cast(int[4])int4(0).array
)[1..2];
26 enum fail19630g
= (cast(int[4])int4
.init
)[1..2];
27 enum fail19630h
= (cast(int[4])int4(0))[1..2];
29 // Same tests as above, but use access via enum.
30 enum int4 V1
= int4
.init
;
31 enum int[4] V2
= int4
.init
.array
;
32 enum int[4] V3
= cast(int[4])int4
.init
;
33 enum int[4] V4
= cast(int[4])int4
.init
.array
;
34 enum int4 V5
= int4(0);
35 enum int[4] V6
= int4(0).array
;
36 enum int[4] V7
= cast(int[4])int4(0);
37 enum int[4] V8
= cast(int[4])int4(0).array
;
40 enum I1
= V1
[0]; static assert(I1
== 0);
41 enum I2
= V2
[0]; static assert(I2
== 0);
42 enum I3
= V3
[0]; static assert(I3
== 0);
43 enum I4
= V4
[0]; static assert(I4
== 0);
44 enum I5
= V5
[0]; static assert(I5
== 0);
45 enum I6
= V6
[0]; static assert(I6
== 0);
46 enum I7
= V7
[0]; static assert(I7
== 0);
47 enum I8
= V8
[0]; static assert(I8
== 0);
50 enum S1
= V1
[1..2]; static assert(S1
== [0]);
51 enum S2
= V2
[1..2]; static assert(S2
== [0]);
52 enum S3
= V3
[1..2]; static assert(S3
== [0]);
53 enum S4
= V4
[1..2]; static assert(S4
== [0]);
54 enum S5
= V5
[1..2]; static assert(S5
== [0]);
55 enum S6
= V6
[1..2]; static assert(S6
== [0]);
56 enum S7
= V7
[1..2]; static assert(S7
== [0]);
57 enum S8
= V8
[1..2]; static assert(S8
== [0]);
59 // Same tests as above, but use access via immutable.
60 //immutable int4 v1 = int4.init; // Cannot cast to immutable at compile time
61 immutable int[4] v2
= int4
.init
.array
;
62 immutable int[4] v3
= cast(int[4])int4
.init
;
63 immutable int[4] v4
= cast(int[4])int4
.init
.array
;
64 //immutable int4 v5 = int4(0); // Cannot cast to immutable at compile time
65 immutable int[4] v6
= int4(0).array
;
66 immutable int[4] v7
= cast(int[4])int4(0);
67 immutable int[4] v8
= cast(int[4])int4(0).array
;
70 //immutable i1 = v1[0]; static assert(i1 == 0);
71 immutable i2
= v2
[0]; static assert(i2
== 0);
72 immutable i3
= v3
[0]; static assert(i3
== 0);
73 immutable i4
= v4
[0]; static assert(i4
== 0);
74 //immutable i5 = v5[0]; static assert(i5 == 0);
75 immutable i6
= v6
[0]; static assert(i6
== 0);
76 immutable i7
= v7
[0]; static assert(i7
== 0);
77 immutable i8
= v8
[0]; static assert(i8
== 0);
80 //immutable s1 = v1[1..2]; static assert(s1 == [0]);
81 immutable s2
= v2
[1..2]; static assert(s2
== [0]);
82 immutable s3
= v3
[1..2]; static assert(s3
== [0]);
83 immutable s4
= v4
[1..2]; static assert(s4
== [0]);
84 //immutable s5 = v5[1..2]; static assert(s5 == [0]);
85 immutable s6
= v6
[1..2]; static assert(s6
== [0]);
86 immutable s7
= v7
[1..2]; static assert(s7
== [0]);
87 immutable s8
= v8
[1..2]; static assert(s8
== [0]);