File tree Expand file tree Collapse file tree 5 files changed +40
-6
lines changed Expand file tree Collapse file tree 5 files changed +40
-6
lines changed Original file line number Diff line number Diff line change @@ -924,13 +924,18 @@ class BackendARM64 : CompilerBackend {
924
924
925
925
foreach (ref elem ; node.elements) {
926
926
switch (elem.type) {
927
+ case NodeType.SignedInt: {
928
+ auto node2 = cast (SignedIntNode) elem;
929
+ array.values ~= node2.value.text();
930
+ break ;
931
+ }
927
932
case NodeType.Integer: {
928
933
auto node2 = cast (IntegerNode) elem;
929
934
array.values ~= node2.value.text();
930
935
break ;
931
936
}
932
937
default : {
933
- Error(elem.error, " Type '%s' can't be used in array literal" );
938
+ Error(elem.error, " Type '%s' can't be used in array literal" , elem.type );
934
939
}
935
940
}
936
941
}
Original file line number Diff line number Diff line change @@ -635,13 +635,18 @@ class BackendLua : CompilerBackend {
635
635
636
636
foreach (ref elem ; node.elements) {
637
637
switch (elem.type) {
638
+ case NodeType.SignedInt:{
639
+ auto node2 = cast (SignedIntNode) elem;
640
+ array.values ~= node2.value.text();
641
+ break ;
642
+ }
638
643
case NodeType.Integer: {
639
644
auto node2 = cast (IntegerNode) elem;
640
645
array.values ~= node2.value.text();
641
646
break ;
642
647
}
643
648
default : {
644
- Error(elem.error, " Type '%s' can't be used in array literal" );
649
+ Error(elem.error, " Type '%s' can't be used in array literal" , elem.type );
645
650
}
646
651
}
647
652
}
Original file line number Diff line number Diff line change @@ -734,13 +734,18 @@ class BackendRM86 : CompilerBackend {
734
734
735
735
foreach (ref elem ; node.elements) {
736
736
switch (elem.type) {
737
+ case NodeType.SignedInt:{
738
+ auto node2 = cast (SignedIntNode) elem;
739
+ array.values ~= node2.value.text();
740
+ break ;
741
+ }
737
742
case NodeType.Integer: {
738
743
auto node2 = cast (IntegerNode) elem;
739
744
array.values ~= node2.value.text();
740
745
break ;
741
746
}
742
747
default : {
743
- Error(elem.error, " Type '%s' can't be used in array literal" );
748
+ Error(elem.error, " Type '%s' can't be used in array literal" , elem.type );
744
749
}
745
750
}
746
751
}
Original file line number Diff line number Diff line change @@ -742,6 +742,21 @@ class BackendUXN : CompilerBackend {
742
742
743
743
foreach (ref elem ; node.elements) {
744
744
switch (elem.type) {
745
+ case NodeType.SignedInt:{
746
+ auto node2 = cast (SignedIntNode) elem;
747
+
748
+ final switch (array.type.Size()) {
749
+ case 1 : {
750
+ array.values ~= format(" %.2x" , cast (ubyte ) (cast (byte ) node2.value));
751
+ break ;
752
+ }
753
+ case 2 : {
754
+ array.values ~= format(" %.4x" , cast (ushort ) (cast (short ) node2.value));
755
+ break ;
756
+ }
757
+ }
758
+ break ;
759
+ }
745
760
case NodeType.Integer: {
746
761
auto node2 = cast (IntegerNode) elem;
747
762
@@ -753,8 +768,7 @@ class BackendUXN : CompilerBackend {
753
768
break ;
754
769
}
755
770
default : {
756
- Error(elem.error, " Type '%s' can't be used in array literal" );
757
- // TODO: orphan format specifier
771
+ Error(elem.error, " Type '%s' can't be used in array literal" , elem.type);
758
772
}
759
773
}
760
774
}
Original file line number Diff line number Diff line change @@ -1139,13 +1139,18 @@ class BackendX86_64 : CompilerBackend {
1139
1139
1140
1140
foreach (ref elem ; node.elements) {
1141
1141
switch (elem.type) {
1142
+ case NodeType.SignedInt: {
1143
+ auto node2 = cast (SignedIntNode) elem;
1144
+ array.values ~= node2.value.text();
1145
+ break ;
1146
+ }
1142
1147
case NodeType.Integer: {
1143
1148
auto node2 = cast (IntegerNode) elem;
1144
1149
array.values ~= node2.value.text();
1145
1150
break ;
1146
1151
}
1147
1152
default : {
1148
- Error(elem.error, " Type '%s' can't be used in array literal" );
1153
+ Error(elem.error, " Type '%s' can't be used in array literal" , elem.type );
1149
1154
}
1150
1155
}
1151
1156
}
You can’t perform that action at this time.
0 commit comments