rubinius-melbourne 2.2.0.0 → 2.2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/rubinius/melbourne/grammar.cpp +544 -546
- data/ext/rubinius/melbourne/grammar.y +3 -5
- data/ext/rubinius/melbourne/missing.hpp +29 -0
- data/lib/rubinius/melbourne/version.rb +1 -1
- data/spec/attrasgn_spec.rb +18 -14
- data/spec/defn_spec.rb +36 -36
- data/spec/defs_spec.rb +2 -2
- data/spec/for_spec.rb +6 -6
- data/spec/iter_spec.rb +42 -42
- data/spec/lambda_spec.rb +6 -6
- data/spec/postexe_spec.rb +1 -1
- metadata +2 -1
data/spec/iter_spec.rb
CHANGED
@@ -98,14 +98,14 @@ describe "An Iter node" do
|
|
98
98
|
end
|
99
99
|
|
100
100
|
parse "m { |a:| }" do
|
101
|
-
[:call, nil, :m, [:arglist, [:iter, [:args, :a, [:
|
101
|
+
[:call, nil, :m, [:arglist, [:iter, [:args, :a, [:kwargs, [:a]]], [:nil]]]]
|
102
102
|
end
|
103
103
|
|
104
104
|
parse "m { |a:; x| }" do
|
105
105
|
[:call,
|
106
106
|
nil,
|
107
107
|
:m,
|
108
|
-
[:arglist, [:iter, [:args, :a, [:
|
108
|
+
[:arglist, [:iter, [:args, :a, [:kwargs, [:a]]], [:block, [[:lvar, :x]]]]]]
|
109
109
|
end
|
110
110
|
|
111
111
|
parse "m { |a: 1| }" do
|
@@ -113,7 +113,7 @@ describe "An Iter node" do
|
|
113
113
|
nil,
|
114
114
|
:m,
|
115
115
|
[:arglist,
|
116
|
-
[:iter, [:args, :a, [:
|
116
|
+
[:iter, [:args, :a, [:kwargs, [:a], [[:lasgn, :a, [:lit, 1]]]]], [:nil]]]]
|
117
117
|
end
|
118
118
|
|
119
119
|
parse "m { |a: 1; x| }" do
|
@@ -122,26 +122,26 @@ describe "An Iter node" do
|
|
122
122
|
:m,
|
123
123
|
[:arglist,
|
124
124
|
[:iter,
|
125
|
-
[:args, :a, [:
|
125
|
+
[:args, :a, [:kwargs, [:a], [[:lasgn, :a, [:lit, 1]]]]],
|
126
126
|
[:block, [[:lvar, :x]]]]]]
|
127
127
|
end
|
128
128
|
|
129
129
|
parse "m { |**| }" do
|
130
|
-
[:call, nil, :m, [:arglist, [:iter, [:args, :**, [:
|
130
|
+
[:call, nil, :m, [:arglist, [:iter, [:args, :**, [:kwargs, [:**]]], [:nil]]]]
|
131
131
|
end
|
132
132
|
|
133
133
|
parse "m { |**; x| }" do
|
134
134
|
[:call,
|
135
135
|
nil,
|
136
136
|
:m,
|
137
|
-
[:arglist, [:iter, [:args, :**, [:
|
137
|
+
[:arglist, [:iter, [:args, :**, [:kwargs, [:**]]], [:block, [[:lvar, :x]]]]]]
|
138
138
|
end
|
139
139
|
|
140
140
|
parse "m { |**k| }" do
|
141
141
|
[:call,
|
142
142
|
nil,
|
143
143
|
:m,
|
144
|
-
[:arglist, [:iter, [:args, :"**k", [:
|
144
|
+
[:arglist, [:iter, [:args, :"**k", [:kwargs, [:"**k"]]], [:nil]]]]
|
145
145
|
end
|
146
146
|
|
147
147
|
parse "m { |**k; x| }" do
|
@@ -149,7 +149,7 @@ describe "An Iter node" do
|
|
149
149
|
nil,
|
150
150
|
:m,
|
151
151
|
[:arglist,
|
152
|
-
[:iter, [:args, :"**k", [:
|
152
|
+
[:iter, [:args, :"**k", [:kwargs, [:"**k"]]], [:block, [[:lvar, :x]]]]]]
|
153
153
|
end
|
154
154
|
|
155
155
|
parse "m { |&b| }" do
|
@@ -161,11 +161,11 @@ describe "An Iter node" do
|
|
161
161
|
end
|
162
162
|
|
163
163
|
parse "m { |a, | }" do
|
164
|
-
[:call, nil, :m, [:arglist, [:iter, [:args, :a
|
164
|
+
[:call, nil, :m, [:arglist, [:iter, [:args, :a], [:nil]]]]
|
165
165
|
end
|
166
166
|
|
167
167
|
parse "m { |a,; x| }" do
|
168
|
-
[:call, nil, :m, [:arglist, [:iter, [:args, :a
|
168
|
+
[:call, nil, :m, [:arglist, [:iter, [:args, :a], [:block, [[:lvar, :x]]]]]]
|
169
169
|
end
|
170
170
|
|
171
171
|
parse "m { |a, b| }" do
|
@@ -193,7 +193,7 @@ describe "An Iter node" do
|
|
193
193
|
end
|
194
194
|
|
195
195
|
parse "m { |a, b:| }" do
|
196
|
-
[:call, nil, :m, [:arglist, [:iter, [:args, :a, :b, [:
|
196
|
+
[:call, nil, :m, [:arglist, [:iter, [:args, :a, :b, [:kwargs, [:b]]], [:nil]]]]
|
197
197
|
end
|
198
198
|
|
199
199
|
parse "m { |a, b: 1| }" do
|
@@ -201,21 +201,21 @@ describe "An Iter node" do
|
|
201
201
|
nil,
|
202
202
|
:m,
|
203
203
|
[:arglist,
|
204
|
-
[:iter, [:args, :a, :b, [:
|
204
|
+
[:iter, [:args, :a, :b, [:kwargs, [:b], [[:lasgn, :b, [:lit, 1]]]]], [:nil]]]]
|
205
205
|
end
|
206
206
|
|
207
207
|
parse "m { |a, **| }" do
|
208
208
|
[:call,
|
209
209
|
nil,
|
210
210
|
:m,
|
211
|
-
[:arglist, [:iter, [:args, :a, :**, [:
|
211
|
+
[:arglist, [:iter, [:args, :a, :**, [:kwargs, [:**]]], [:nil]]]]
|
212
212
|
end
|
213
213
|
|
214
214
|
parse "m { |a, **k| }" do
|
215
215
|
[:call,
|
216
216
|
nil,
|
217
217
|
:m,
|
218
|
-
[:arglist, [:iter, [:args, :a, :"**k", [:
|
218
|
+
[:arglist, [:iter, [:args, :a, :"**k", [:kwargs, [:"**k"]]], [:nil]]]]
|
219
219
|
end
|
220
220
|
|
221
221
|
parse "m { |a, &b| }" do
|
@@ -262,7 +262,7 @@ describe "An Iter node" do
|
|
262
262
|
:m,
|
263
263
|
[:arglist,
|
264
264
|
[:iter,
|
265
|
-
[:args, :a, :b, [:block, [:lasgn, :a, [:lit, 1]]], [:
|
265
|
+
[:args, :a, :b, [:block, [:lasgn, :a, [:lit, 1]]], [:kwargs, [:b]]],
|
266
266
|
[:nil]]]]
|
267
267
|
end
|
268
268
|
|
@@ -276,7 +276,7 @@ describe "An Iter node" do
|
|
276
276
|
:a,
|
277
277
|
:b,
|
278
278
|
[:block, [:lasgn, :a, [:lit, 1]]],
|
279
|
-
[:
|
279
|
+
[:kwargs, [:b], [[:lasgn, :b, [:lit, 2]]]]],
|
280
280
|
[:nil]]]]
|
281
281
|
end
|
282
282
|
|
@@ -286,7 +286,7 @@ describe "An Iter node" do
|
|
286
286
|
:m,
|
287
287
|
[:arglist,
|
288
288
|
[:iter,
|
289
|
-
[:args, :a, :**, [:block, [:lasgn, :a, [:lit, 1]]], [:
|
289
|
+
[:args, :a, :**, [:block, [:lasgn, :a, [:lit, 1]]], [:kwargs, [:**]]],
|
290
290
|
[:nil]]]]
|
291
291
|
end
|
292
292
|
|
@@ -296,7 +296,7 @@ describe "An Iter node" do
|
|
296
296
|
:m,
|
297
297
|
[:arglist,
|
298
298
|
[:iter,
|
299
|
-
[:args, :a, :"**k", [:block, [:lasgn, :a, [:lit, 1]]], [:
|
299
|
+
[:args, :a, :"**k", [:block, [:lasgn, :a, [:lit, 1]]], [:kwargs, [:"**k"]]],
|
300
300
|
[:nil]]]]
|
301
301
|
end
|
302
302
|
|
@@ -317,14 +317,14 @@ describe "An Iter node" do
|
|
317
317
|
end
|
318
318
|
|
319
319
|
parse "m { |*, a:| }" do
|
320
|
-
[:call, nil, :m, [:arglist, [:iter, [:args, :*, :a, [:
|
320
|
+
[:call, nil, :m, [:arglist, [:iter, [:args, :*, :a, [:kwargs, [:a]]], [:nil]]]]
|
321
321
|
end
|
322
322
|
|
323
323
|
parse "m { |*a, b:| }" do
|
324
324
|
[:call,
|
325
325
|
nil,
|
326
326
|
:m,
|
327
|
-
[:arglist, [:iter, [:args, :"*a", :b, [:
|
327
|
+
[:arglist, [:iter, [:args, :"*a", :b, [:kwargs, [:b]]], [:nil]]]]
|
328
328
|
end
|
329
329
|
|
330
330
|
parse "m { |*, a: 1| }" do
|
@@ -332,7 +332,7 @@ describe "An Iter node" do
|
|
332
332
|
nil,
|
333
333
|
:m,
|
334
334
|
[:arglist,
|
335
|
-
[:iter, [:args, :*, :a, [:
|
335
|
+
[:iter, [:args, :*, :a, [:kwargs, [:a], [[:lasgn, :a, [:lit, 1]]]]], [:nil]]]]
|
336
336
|
end
|
337
337
|
|
338
338
|
parse "m { |*a, b: 1| }" do
|
@@ -341,7 +341,7 @@ describe "An Iter node" do
|
|
341
341
|
:m,
|
342
342
|
[:arglist,
|
343
343
|
[:iter,
|
344
|
-
[:args, :"*a", :b, [:
|
344
|
+
[:args, :"*a", :b, [:kwargs, [:b], [[:lasgn, :b, [:lit, 1]]]]],
|
345
345
|
[:nil]]]]
|
346
346
|
end
|
347
347
|
|
@@ -349,28 +349,28 @@ describe "An Iter node" do
|
|
349
349
|
[:call,
|
350
350
|
nil,
|
351
351
|
:m,
|
352
|
-
[:arglist, [:iter, [:args, :*, :**, [:
|
352
|
+
[:arglist, [:iter, [:args, :*, :**, [:kwargs, [:**]]], [:nil]]]]
|
353
353
|
end
|
354
354
|
|
355
355
|
parse "m { |*a, **| }" do
|
356
356
|
[:call,
|
357
357
|
nil,
|
358
358
|
:m,
|
359
|
-
[:arglist, [:iter, [:args, :"*a", :**, [:
|
359
|
+
[:arglist, [:iter, [:args, :"*a", :**, [:kwargs, [:**]]], [:nil]]]]
|
360
360
|
end
|
361
361
|
|
362
362
|
parse "m { |*, **k| }" do
|
363
363
|
[:call,
|
364
364
|
nil,
|
365
365
|
:m,
|
366
|
-
[:arglist, [:iter, [:args, :*, :"**k", [:
|
366
|
+
[:arglist, [:iter, [:args, :*, :"**k", [:kwargs, [:"**k"]]], [:nil]]]]
|
367
367
|
end
|
368
368
|
|
369
369
|
parse "m { |*a, **k| }" do
|
370
370
|
[:call,
|
371
371
|
nil,
|
372
372
|
:m,
|
373
|
-
[:arglist, [:iter, [:args, :"*a", :"**k", [:
|
373
|
+
[:arglist, [:iter, [:args, :"*a", :"**k", [:kwargs, [:"**k"]]], [:nil]]]]
|
374
374
|
end
|
375
375
|
|
376
376
|
parse "m { |*, &b| }" do
|
@@ -385,7 +385,7 @@ describe "An Iter node" do
|
|
385
385
|
[:call,
|
386
386
|
nil,
|
387
387
|
:m,
|
388
|
-
[:arglist, [:iter, [:args, :a, :b, [:
|
388
|
+
[:arglist, [:iter, [:args, :a, :b, [:kwargs, [:a, :b]]], [:nil]]]]
|
389
389
|
end
|
390
390
|
|
391
391
|
parse "m { |a:, b: 1| }" do
|
@@ -394,7 +394,7 @@ describe "An Iter node" do
|
|
394
394
|
:m,
|
395
395
|
[:arglist,
|
396
396
|
[:iter,
|
397
|
-
[:args, :a, :b, [:
|
397
|
+
[:args, :a, :b, [:kwargs, [:a, :b], [[:lasgn, :b, [:lit, 1]]]]],
|
398
398
|
[:nil]]]]
|
399
399
|
end
|
400
400
|
|
@@ -402,21 +402,21 @@ describe "An Iter node" do
|
|
402
402
|
[:call,
|
403
403
|
nil,
|
404
404
|
:m,
|
405
|
-
[:arglist, [:iter, [:args, :a, :**, [:
|
405
|
+
[:arglist, [:iter, [:args, :a, :**, [:kwargs, [:a, :**]]], [:nil]]]]
|
406
406
|
end
|
407
407
|
|
408
408
|
parse "m { |a:, **k| }" do
|
409
409
|
[:call,
|
410
410
|
nil,
|
411
411
|
:m,
|
412
|
-
[:arglist, [:iter, [:args, :a, :"**k", [:
|
412
|
+
[:arglist, [:iter, [:args, :a, :"**k", [:kwargs, [:a, :"**k"]]], [:nil]]]]
|
413
413
|
end
|
414
414
|
|
415
415
|
parse "m { |a:, &b| }" do
|
416
416
|
[:call,
|
417
417
|
nil,
|
418
418
|
:m,
|
419
|
-
[:arglist, [:iter, [:args, :a, :"&b", [:
|
419
|
+
[:arglist, [:iter, [:args, :a, :"&b", [:kwargs, [:a]]], [:nil]]]]
|
420
420
|
end
|
421
421
|
|
422
422
|
parse "m { |a: 1, b:| }" do
|
@@ -425,7 +425,7 @@ describe "An Iter node" do
|
|
425
425
|
:m,
|
426
426
|
[:arglist,
|
427
427
|
[:iter,
|
428
|
-
[:args, :a, :b, [:
|
428
|
+
[:args, :a, :b, [:kwargs, [:a, :b], [[:lasgn, :a, [:lit, 1]]]]],
|
429
429
|
[:nil]]]]
|
430
430
|
end
|
431
431
|
|
@@ -438,7 +438,7 @@ describe "An Iter node" do
|
|
438
438
|
[:args,
|
439
439
|
:a,
|
440
440
|
:b,
|
441
|
-
[:
|
441
|
+
[:kwargs, [:a, :b], [[:lasgn, :a, [:lit, 1]], [:lasgn, :b, [:lit, 2]]]]],
|
442
442
|
[:nil]]]]
|
443
443
|
end
|
444
444
|
|
@@ -448,7 +448,7 @@ describe "An Iter node" do
|
|
448
448
|
:m,
|
449
449
|
[:arglist,
|
450
450
|
[:iter,
|
451
|
-
[:args, :a, :**, [:
|
451
|
+
[:args, :a, :**, [:kwargs, [:a, :**], [[:lasgn, :a, [:lit, 1]]]]],
|
452
452
|
[:nil]]]]
|
453
453
|
end
|
454
454
|
|
@@ -458,7 +458,7 @@ describe "An Iter node" do
|
|
458
458
|
:m,
|
459
459
|
[:arglist,
|
460
460
|
[:iter,
|
461
|
-
[:args, :a, :"**k", [:
|
461
|
+
[:args, :a, :"**k", [:kwargs, [:a, :"**k"], [[:lasgn, :a, [:lit, 1]]]]],
|
462
462
|
[:nil]]]]
|
463
463
|
end
|
464
464
|
|
@@ -468,7 +468,7 @@ describe "An Iter node" do
|
|
468
468
|
:m,
|
469
469
|
[:arglist,
|
470
470
|
[:iter,
|
471
|
-
[:args, :a, :"&b", [:
|
471
|
+
[:args, :a, :"&b", [:kwargs, [:a], [[:lasgn, :a, [:lit, 1]]]]],
|
472
472
|
[:nil]]]]
|
473
473
|
end
|
474
474
|
|
@@ -476,14 +476,14 @@ describe "An Iter node" do
|
|
476
476
|
[:call,
|
477
477
|
nil,
|
478
478
|
:m,
|
479
|
-
[:arglist, [:iter, [:args, :**, :"&b", [:
|
479
|
+
[:arglist, [:iter, [:args, :**, :"&b", [:kwargs, [:**]]], [:nil]]]]
|
480
480
|
end
|
481
481
|
|
482
482
|
parse "m { |**k, &b| }" do
|
483
483
|
[:call,
|
484
484
|
nil,
|
485
485
|
:m,
|
486
|
-
[:arglist, [:iter, [:args, :"**k", :"&b", [:
|
486
|
+
[:arglist, [:iter, [:args, :"**k", :"&b", [:kwargs, [:"**k"]]], [:nil]]]]
|
487
487
|
end
|
488
488
|
|
489
489
|
parse "m { n = 1; m { n } }" do
|
@@ -515,7 +515,7 @@ describe "An Iter node" do
|
|
515
515
|
:"**k",
|
516
516
|
:"&l",
|
517
517
|
[:block, [:lasgn, :b, [:lit, 1]]],
|
518
|
-
[:
|
518
|
+
[:kwargs, [:e, :f, :"**k"], [[:lasgn, :f, [:lit, 2]]]]],
|
519
519
|
[:nil]]]]
|
520
520
|
end
|
521
521
|
|
@@ -537,7 +537,7 @@ describe "An Iter node" do
|
|
537
537
|
:"**k",
|
538
538
|
:"&l",
|
539
539
|
[:block, [:lasgn, :b, [:lit, 1]]],
|
540
|
-
[:
|
540
|
+
[:kwargs, [:e, :f, :"**k"], [[:lasgn, :f, [:lit, 2]]]]],
|
541
541
|
[:nil]]]]
|
542
542
|
end
|
543
543
|
|
@@ -557,7 +557,7 @@ describe "An Iter node" do
|
|
557
557
|
:"**k",
|
558
558
|
:"&l",
|
559
559
|
[:block, [:lasgn, :b, [:lit, 1]]],
|
560
|
-
[:
|
560
|
+
[:kwargs, [:e, :f, :"**k"], [[:lasgn, :f, [:lit, 2]]]]],
|
561
561
|
[:nil]]]]
|
562
562
|
end
|
563
563
|
|
@@ -579,7 +579,7 @@ describe "An Iter node" do
|
|
579
579
|
:"**k",
|
580
580
|
:"&l",
|
581
581
|
[:block, [:lasgn, :b, [:lit, 1]]],
|
582
|
-
[:
|
582
|
+
[:kwargs, [:e, :f, :"**k"], [[:lasgn, :f, [:lit, 2]]]]],
|
583
583
|
[:nil]]]]
|
584
584
|
end
|
585
585
|
|
data/spec/lambda_spec.rb
CHANGED
@@ -57,22 +57,22 @@ describe "A Lambda node" do
|
|
57
57
|
end
|
58
58
|
|
59
59
|
parse "-> (*a, b, c:) { }" do
|
60
|
-
[:lambda, [:args, :"*a", :b, :c, [:
|
60
|
+
[:lambda, [:args, :"*a", :b, :c, [:kwargs, [:c]]], [:scope, [:nil]]]
|
61
61
|
end
|
62
62
|
|
63
63
|
parse "-> (*a, b, c:, **) { }" do
|
64
|
-
[:lambda, [:args, :"*a", :b, :c, :**, [:
|
64
|
+
[:lambda, [:args, :"*a", :b, :c, :**, [:kwargs, [:c, :**]]], [:scope, [:nil]]]
|
65
65
|
end
|
66
66
|
|
67
67
|
parse "-> (a: 1, b:) { }" do
|
68
68
|
[:lambda,
|
69
|
-
[:args, :a, :b, [:
|
69
|
+
[:args, :a, :b, [:kwargs, [:a, :b], [[:lasgn, :a, [:lit, 1]]]]],
|
70
70
|
[:scope, [:nil]]]
|
71
71
|
end
|
72
72
|
|
73
73
|
parse "-> (a: 1, b:, &l) { }" do
|
74
74
|
[:lambda,
|
75
|
-
[:args, :a, :b, :"&l", [:
|
75
|
+
[:args, :a, :b, :"&l", [:kwargs, [:a, :b], [[:lasgn, :a, [:lit, 1]]]]],
|
76
76
|
[:scope, [:nil]]]
|
77
77
|
end
|
78
78
|
|
@@ -82,7 +82,7 @@ describe "A Lambda node" do
|
|
82
82
|
:a,
|
83
83
|
:b,
|
84
84
|
:"**k",
|
85
|
-
[:
|
85
|
+
[:kwargs,
|
86
86
|
[:a, :b, :"**k"],
|
87
87
|
[[:lasgn, :a, [:lit, 1]], [:lasgn, :b, [:lit, 2]]]]],
|
88
88
|
[:scope, [:nil]]]
|
@@ -101,7 +101,7 @@ describe "A Lambda node" do
|
|
101
101
|
:"**k",
|
102
102
|
:"&l",
|
103
103
|
[:block, [:lasgn, :b, [:lit, 1]]],
|
104
|
-
[:
|
104
|
+
[:kwargs, [:e, :f, :g, :"**k"], [[:lasgn, :f, [:lit, 2]]]]],
|
105
105
|
[:scope, [:call, [:call, nil, :x, [:arglist]], :+, [:arglist, [:lvar, :a]]]]]
|
106
106
|
end
|
107
107
|
end
|
data/spec/postexe_spec.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubinius-melbourne
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Shirai
|
@@ -131,6 +131,7 @@ files:
|
|
131
131
|
- ext/rubinius/melbourne/lex.c.blt
|
132
132
|
- ext/rubinius/melbourne/melbourne.cpp
|
133
133
|
- ext/rubinius/melbourne/melbourne.hpp
|
134
|
+
- ext/rubinius/melbourne/missing.hpp
|
134
135
|
- ext/rubinius/melbourne/node.hpp
|
135
136
|
- ext/rubinius/melbourne/node_types.cpp
|
136
137
|
- ext/rubinius/melbourne/node_types.hpp
|