Skip to content

Commit 0e72454

Browse files
committed
Added more reversed index support for slice. [skip CI]
1 parent 548ab1d commit 0e72454

9 files changed

Lines changed: 174 additions & 67 deletions

File tree

spec/outputs/codes_from_doc.lua

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1062,8 +1062,7 @@ local slice
10621062
local _accum_0 = { }
10631063
local _len_0 = 1
10641064
local _list_0 = items
1065-
local _max_0 = 5
1066-
for _index_0 = 1, _max_0 < 0 and #_list_0 + _max_0 + 1 or _max_0 do
1065+
for _index_0 = 1, 5 do
10671066
local item = _list_0[_index_0]
10681067
_accum_0[_len_0] = item
10691068
_len_0 = _len_0 + 1
@@ -1073,7 +1072,8 @@ local slice
10731072
local _accum_0 = { }
10741073
local _len_0 = 1
10751074
local _list_0 = items
1076-
for _index_0 = 2, #_list_0 do
1075+
local _max_0 = #_list_0
1076+
for _index_0 = 2, _max_0 do
10771077
local item = _list_0[_index_0]
10781078
_accum_0[_len_0] = item
10791079
_len_0 = _len_0 + 1
@@ -1083,7 +1083,8 @@ local slice
10831083
local _accum_0 = { }
10841084
local _len_0 = 1
10851085
local _list_0 = items
1086-
for _index_0 = 1, #_list_0, 2 do
1086+
local _max_0 = #_list_0
1087+
for _index_0 = 1, _max_0, 2 do
10871088
local item = _list_0[_index_0]
10881089
_accum_0[_len_0] = item
10891090
_len_0 = _len_0 + 1
@@ -1099,8 +1100,7 @@ for key, value in pairs(object) do
10991100
print(key, value)
11001101
end
11011102
local _list_0 = items
1102-
local _max_0 = 4
1103-
for _index_0 = 2, _max_0 < 0 and #_list_0 + _max_0 + 1 or _max_0 do
1103+
for _index_0 = 2, 4 do
11041104
local item = _list_0[_index_0]
11051105
print(item)
11061106
end
@@ -3332,8 +3332,7 @@ local slice
33323332
local _accum_0 = { }
33333333
local _len_0 = 1
33343334
local _list_0 = items
3335-
local _max_0 = 5
3336-
for _index_0 = 1, _max_0 < 0 and #_list_0 + _max_0 + 1 or _max_0 do
3335+
for _index_0 = 1, 5 do
33373336
local item = _list_0[_index_0]
33383337
_accum_0[_len_0] = item
33393338
_len_0 = _len_0 + 1
@@ -3343,7 +3342,8 @@ local slice
33433342
local _accum_0 = { }
33443343
local _len_0 = 1
33453344
local _list_0 = items
3346-
for _index_0 = 2, #_list_0 do
3345+
local _max_0 = #_list_0
3346+
for _index_0 = 2, _max_0 do
33473347
local item = _list_0[_index_0]
33483348
_accum_0[_len_0] = item
33493349
_len_0 = _len_0 + 1
@@ -3353,7 +3353,8 @@ local slice
33533353
local _accum_0 = { }
33543354
local _len_0 = 1
33553355
local _list_0 = items
3356-
for _index_0 = 1, #_list_0, 2 do
3356+
local _max_0 = #_list_0
3357+
for _index_0 = 1, _max_0, 2 do
33573358
local item = _list_0[_index_0]
33583359
_accum_0[_len_0] = item
33593360
_len_0 = _len_0 + 1
@@ -3369,8 +3370,7 @@ for key, value in pairs(object) do
33693370
print(key, value)
33703371
end
33713372
local _list_0 = items
3372-
local _max_0 = 4
3373-
for _index_0 = 2, _max_0 < 0 and #_list_0 + _max_0 + 1 or _max_0 do
3373+
for _index_0 = 2, 4 do
33743374
local item = _list_0[_index_0]
33753375
print(item)
33763376
end

spec/outputs/codes_from_doc_zh.lua

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,8 +1056,7 @@ local slice
10561056
local _accum_0 = { }
10571057
local _len_0 = 1
10581058
local _list_0 = items
1059-
local _max_0 = 5
1060-
for _index_0 = 1, _max_0 < 0 and #_list_0 + _max_0 + 1 or _max_0 do
1059+
for _index_0 = 1, 5 do
10611060
local item = _list_0[_index_0]
10621061
_accum_0[_len_0] = item
10631062
_len_0 = _len_0 + 1
@@ -1067,7 +1066,8 @@ local slice
10671066
local _accum_0 = { }
10681067
local _len_0 = 1
10691068
local _list_0 = items
1070-
for _index_0 = 2, #_list_0 do
1069+
local _max_0 = #_list_0
1070+
for _index_0 = 2, _max_0 do
10711071
local item = _list_0[_index_0]
10721072
_accum_0[_len_0] = item
10731073
_len_0 = _len_0 + 1
@@ -1077,7 +1077,8 @@ local slice
10771077
local _accum_0 = { }
10781078
local _len_0 = 1
10791079
local _list_0 = items
1080-
for _index_0 = 1, #_list_0, 2 do
1080+
local _max_0 = #_list_0
1081+
for _index_0 = 1, _max_0, 2 do
10811082
local item = _list_0[_index_0]
10821083
_accum_0[_len_0] = item
10831084
_len_0 = _len_0 + 1
@@ -1093,8 +1094,7 @@ for key, value in pairs(object) do
10931094
print(key, value)
10941095
end
10951096
local _list_0 = items
1096-
local _max_0 = 4
1097-
for _index_0 = 2, _max_0 < 0 and #_list_0 + _max_0 + 1 or _max_0 do
1097+
for _index_0 = 2, 4 do
10981098
local item = _list_0[_index_0]
10991099
print(item)
11001100
end
@@ -3320,8 +3320,7 @@ local slice
33203320
local _accum_0 = { }
33213321
local _len_0 = 1
33223322
local _list_0 = items
3323-
local _max_0 = 5
3324-
for _index_0 = 1, _max_0 < 0 and #_list_0 + _max_0 + 1 or _max_0 do
3323+
for _index_0 = 1, 5 do
33253324
local item = _list_0[_index_0]
33263325
_accum_0[_len_0] = item
33273326
_len_0 = _len_0 + 1
@@ -3331,7 +3330,8 @@ local slice
33313330
local _accum_0 = { }
33323331
local _len_0 = 1
33333332
local _list_0 = items
3334-
for _index_0 = 2, #_list_0 do
3333+
local _max_0 = #_list_0
3334+
for _index_0 = 2, _max_0 do
33353335
local item = _list_0[_index_0]
33363336
_accum_0[_len_0] = item
33373337
_len_0 = _len_0 + 1
@@ -3341,7 +3341,8 @@ local slice
33413341
local _accum_0 = { }
33423342
local _len_0 = 1
33433343
local _list_0 = items
3344-
for _index_0 = 1, #_list_0, 2 do
3344+
local _max_0 = #_list_0
3345+
for _index_0 = 1, _max_0, 2 do
33453346
local item = _list_0[_index_0]
33463347
_accum_0[_len_0] = item
33473348
_len_0 = _len_0 + 1
@@ -3357,8 +3358,7 @@ for key, value in pairs(object) do
33573358
print(key, value)
33583359
end
33593360
local _list_0 = items
3360-
local _max_0 = 4
3361-
for _index_0 = 2, _max_0 < 0 and #_list_0 + _max_0 + 1 or _max_0 do
3361+
for _index_0 = 2, 4 do
33623362
local item = _list_0[_index_0]
33633363
print(item)
33643364
end

spec/outputs/comprehension.lua

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,11 @@ end
243243
do
244244
local _accum_0 = { }
245245
local _len_0 = 1
246+
local _min_0 = 1 + 2
246247
local _max_0 = 3 + 4
247-
for _index_0 = 1 + 2, _max_0 < 0 and #items + _max_0 + 1 or _max_0 do
248+
_min_0 = _min_0 < 0 and #items + _min_0 + 1 or _min_0
249+
_max_0 = _max_0 < 0 and #items + _max_0 + 1 or _max_0
250+
for _index_0 = _min_0, _max_0 do
248251
local item = items[_index_0]
249252
_accum_0[_len_0] = item
250253
_len_0 = _len_0 + 1
@@ -254,8 +257,11 @@ end
254257
do
255258
local _accum_0 = { }
256259
local _len_0 = 1
260+
local _min_0 = hello() * 4
257261
local _max_0 = 2 - thing[4]
258-
for _index_0 = hello() * 4, _max_0 < 0 and #items + _max_0 + 1 or _max_0 do
262+
_min_0 = _min_0 < 0 and #items + _min_0 + 1 or _min_0
263+
_max_0 = _max_0 < 0 and #items + _max_0 + 1 or _max_0
264+
for _index_0 = _min_0, _max_0 do
259265
local item = items[_index_0]
260266
_accum_0[_len_0] = item
261267
_len_0 = _len_0 + 1

spec/outputs/destructure.lua

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -631,8 +631,8 @@ do
631631
local vipStart, regulars, vipEnd = clients[1], (function()
632632
local _accum_0 = { }
633633
local _len_0 = 1
634-
local _max_0 = -2
635-
for _index_0 = 2, _max_0 < 0 and #clients + _max_0 + 1 or _max_0 do
634+
local _max_0 = #clients + -2 + 1
635+
for _index_0 = 2, _max_0 do
636636
local _item_0 = clients[_index_0]
637637
_accum_0[_len_0] = _item_0
638638
_len_0 = _len_0 + 1
@@ -688,8 +688,8 @@ do
688688
local _accum_0 = { }
689689
local _len_0 = 1
690690
local _list_0 = tb
691-
local _max_0 = -2
692-
for _index_0 = 2, _max_0 < 0 and #_list_0 + _max_0 + 1 or _max_0 do
691+
local _max_0 = #_list_0 + -2 + 1
692+
for _index_0 = 2, _max_0 do
693693
local _item_0 = _list_0[_index_0]
694694
_accum_0[_len_0] = _item_0
695695
_len_0 = _len_0 + 1
@@ -702,8 +702,8 @@ do
702702
a, abc, b, def, sub, d, e = _obj_0[1], _obj_0.abc, _obj_0[2], _obj_0.def, (function()
703703
local _accum_0 = { }
704704
local _len_0 = 1
705-
local _max_0 = -3
706-
for _index_0 = 3, _max_0 < 0 and #_obj_0 + _max_0 + 1 or _max_0 do
705+
local _max_0 = #_obj_0 + -3 + 1
706+
for _index_0 = 3, _max_0 do
707707
local _item_0 = _obj_0[_index_0]
708708
_accum_0[_len_0] = _item_0
709709
_len_0 = _len_0 + 1

spec/outputs/lists.lua

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -230,31 +230,36 @@ x = {
230230
6,
231231
7
232232
}
233-
local _max_0 = -5
234-
for _index_0 = 2, _max_0 < 0 and #x + _max_0 + 1 or _max_0, 2 do
233+
local _max_0 = #x + -5 + 1
234+
for _index_0 = 2, _max_0, 2 do
235235
local y = x[_index_0]
236236
print(y)
237237
end
238-
local _max_1 = 3
239-
for _index_0 = 1, _max_1 < 0 and #x + _max_1 + 1 or _max_1 do
238+
for _index_0 = 1, 3 do
240239
local y = x[_index_0]
241240
print(y)
242241
end
243-
for _index_0 = 2, #x do
242+
local _max_1 = #x
243+
for _index_0 = 2, _max_1 do
244244
local y = x[_index_0]
245245
print(y)
246246
end
247-
for _index_0 = 1, #x, 2 do
247+
local _max_2 = #x
248+
for _index_0 = 1, _max_2, 2 do
248249
local y = x[_index_0]
249250
print(y)
250251
end
251-
for _index_0 = 2, #x, 2 do
252+
local _max_3 = #x
253+
for _index_0 = 2, _max_3, 2 do
252254
local y = x[_index_0]
253255
print(y)
254256
end
255257
local a, b, c = 1, 5, 2
256-
local _max_2 = b
257-
for _index_0 = a, _max_2 < 0 and #x + _max_2 + 1 or _max_2, c do
258+
local _min_0 = a
259+
local _max_4 = b
260+
_min_0 = _min_0 < 0 and #x + _min_0 + 1 or _min_0
261+
_max_4 = _max_4 < 0 and #x + _max_4 + 1 or _max_4
262+
for _index_0 = _min_0, _max_4, c do
258263
local y = x[_index_0]
259264
print(y)
260265
end
@@ -287,7 +292,10 @@ do
287292
a
288293
})
289294
local _list_0 = f
290-
for _index_0 = a, #_list_0 do
295+
local _min_1 = a
296+
local _max_5 = #_list_0
297+
_min_1 = _min_1 < 0 and #_list_0 + _min_1 + 1 or _min_1
298+
for _index_0 = _min_1, _max_5 do
291299
local v = _list_0[_index_0]
292300
print(v)
293301
end
@@ -339,8 +347,8 @@ do
339347
do
340348
local _accum_0 = { }
341349
local _len_0 = 1
342-
local _max_3 = -2
343-
for _index_0 = 2, _max_3 < 0 and #transactions + _max_3 + 1 or _max_3 do
350+
local _max_5 = #transactions + -2 + 1
351+
for _index_0 = 2, _max_5 do
344352
local _item_0 = transactions[_index_0]
345353
_accum_0[_len_0] = _item_0
346354
_len_0 = _len_0 + 1
@@ -405,7 +413,8 @@ do
405413
cloneList1 = function(list)
406414
local _accum_0 = { }
407415
local _len_0 = 1
408-
for _index_0 = 1, #list do
416+
local _max_5 = #list
417+
for _index_0 = 1, _max_5 do
409418
local _item_0 = list[_index_0]
410419
_accum_0[_len_0] = _item_0
411420
_len_0 = _len_0 + 1
@@ -471,8 +480,8 @@ local _anon_func_1 = function(a)
471480
local _accum_0 = { }
472481
local _len_0 = 1
473482
local _list_0 = a.b.c
474-
local _max_3 = -5
475-
for _index_0 = 5, _max_3 < 0 and #_list_0 + _max_3 + 1 or _max_3 do
483+
local _max_5 = #_list_0 + -5 + 1
484+
for _index_0 = 5, _max_5 do
476485
local _item_1 = _list_0[_index_0]
477486
_accum_0[_len_0] = _item_1
478487
_len_0 = _len_0 + 1
@@ -491,8 +500,8 @@ local _anon_func_2 = function(x)
491500
if _obj_2 ~= nil then
492501
local _accum_0 = { }
493502
local _len_0 = 1
494-
local _max_3 = -3
495-
for _index_0 = 1, _max_3 < 0 and #_obj_2 + _max_3 + 1 or _max_3 do
503+
local _max_5 = #_obj_2 + -3 + 1
504+
for _index_0 = 1, _max_5 do
496505
local _item_0 = _obj_2[_index_0]
497506
_accum_0[_len_0] = _item_0
498507
_len_0 = _len_0 + 1

spec/outputs/switch.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -740,8 +740,8 @@ do
740740
do
741741
local _accum_0 = { }
742742
local _len_0 = 1
743-
local _max_0 = -3
744-
for _index_0 = 1, _max_0 < 0 and #clientData + _max_0 + 1 or _max_0 do
743+
local _max_0 = #clientData + -3 + 1
744+
for _index_0 = 1, _max_0 do
745745
local _item_0 = clientData[_index_0]
746746
_accum_0[_len_0] = _item_0
747747
_len_0 = _len_0 + 1

spec/outputs/unicode/comprehension.lua

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,11 @@ end
243243
do
244244
local _accum_0 = { }
245245
local _len_0 = 1
246+
local _min_0 = 1 + 2
246247
local _max_0 = 3 + 4
247-
for _index_0 = 1 + 2, _max_0 < 0 and #_u5217_u8868 + _max_0 + 1 or _max_0 do
248+
_min_0 = _min_0 < 0 and #_u5217_u8868 + _min_0 + 1 or _min_0
249+
_max_0 = _max_0 < 0 and #_u5217_u8868 + _max_0 + 1 or _max_0
250+
for _index_0 = _min_0, _max_0 do
248251
local _u9879_u76ee = _u5217_u8868[_index_0]
249252
_accum_0[_len_0] = _u9879_u76ee
250253
_len_0 = _len_0 + 1
@@ -254,8 +257,11 @@ end
254257
do
255258
local _accum_0 = { }
256259
local _len_0 = 1
260+
local _min_0 = _u4f60_u597d() * 4
257261
local _max_0 = 2 - _u4e1c_u897f[4]
258-
for _index_0 = _u4f60_u597d() * 4, _max_0 < 0 and #_u5217_u8868 + _max_0 + 1 or _max_0 do
262+
_min_0 = _min_0 < 0 and #_u5217_u8868 + _min_0 + 1 or _min_0
263+
_max_0 = _max_0 < 0 and #_u5217_u8868 + _max_0 + 1 or _max_0
264+
for _index_0 = _min_0, _max_0 do
259265
local _u9879_u76ee = _u5217_u8868[_index_0]
260266
_accum_0[_len_0] = _u9879_u76ee
261267
_len_0 = _len_0 + 1

0 commit comments

Comments
 (0)