rubinius-melbourne 2.0.1.0 → 2.1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +2 -9
  4. data/Gemfile +0 -4
  5. data/Rakefile +26 -19
  6. data/ext/rubinius/melbourne/extconf.rb +4 -3
  7. data/ext/rubinius/melbourne/grammar.cpp +2 -2
  8. data/ext/rubinius/melbourne/grammar.y +2 -2
  9. data/ext/rubinius/melbourne/melbourne.cpp +4 -5
  10. data/lib/rubinius/melbourne/version.rb +2 -2
  11. data/lib/rubinius/melbourne.rb +1 -21
  12. data/rubinius-melbourne.gemspec +6 -3
  13. data/spec/alias_spec.rb +13 -18
  14. data/spec/and_spec.rb +6 -12
  15. data/spec/array_spec.rb +28 -54
  16. data/spec/attrasgn_spec.rb +60 -85
  17. data/spec/back_ref_spec.rb +6 -8
  18. data/spec/call_spec.rb +137 -225
  19. data/spec/case_spec.rb +94 -112
  20. data/spec/cdecl_spec.rb +16 -28
  21. data/spec/class_spec.rb +28 -40
  22. data/spec/colon2_spec.rb +2 -4
  23. data/spec/colon3_spec.rb +2 -4
  24. data/spec/const_spec.rb +2 -4
  25. data/spec/custom/runner/relates.rb +4 -0
  26. data/spec/cvar_spec.rb +6 -12
  27. data/spec/cvasgn_spec.rb +20 -15
  28. data/spec/defined_spec.rb +57 -55
  29. data/spec/defn_spec.rb +218 -280
  30. data/spec/defs_spec.rb +30 -38
  31. data/spec/dot2_spec.rb +2 -4
  32. data/spec/dot3_spec.rb +2 -4
  33. data/spec/dregx_spec.rb +20 -34
  34. data/spec/dstr_spec.rb +87 -111
  35. data/spec/dsym_spec.rb +5 -7
  36. data/spec/dxstr_spec.rb +2 -4
  37. data/spec/ensure_spec.rb +32 -40
  38. data/spec/false_spec.rb +2 -4
  39. data/spec/flip2_spec.rb +22 -26
  40. data/spec/flip3_spec.rb +15 -17
  41. data/spec/for_spec.rb +25 -23
  42. data/spec/gasgn_spec.rb +4 -8
  43. data/spec/gvar_spec.rb +8 -16
  44. data/spec/hash_spec.rb +14 -18
  45. data/spec/iasgn_spec.rb +8 -14
  46. data/spec/if_spec.rb +50 -80
  47. data/spec/iter_spec.rb +328 -402
  48. data/spec/lasgn_spec.rb +143 -200
  49. data/spec/lit_spec.rb +20 -40
  50. data/spec/masgn_spec.rb +278 -309
  51. data/spec/match2_spec.rb +6 -10
  52. data/spec/match3_spec.rb +9 -13
  53. data/spec/match_spec.rb +2 -4
  54. data/spec/module_spec.rb +12 -16
  55. data/spec/nil_spec.rb +2 -4
  56. data/spec/not_spec.rb +6 -8
  57. data/spec/nth_ref_spec.rb +2 -4
  58. data/spec/op_asgn_spec.rb +118 -158
  59. data/spec/or_spec.rb +18 -24
  60. data/spec/postexe_spec.rb +2 -4
  61. data/spec/regex_spec.rb +11 -19
  62. data/spec/rescue_spec.rb +135 -143
  63. data/spec/return_spec.rb +19 -36
  64. data/spec/sclass_spec.rb +26 -25
  65. data/spec/spec_helper.rb +9 -0
  66. data/spec/str_spec.rb +25 -43
  67. data/spec/super_spec.rb +31 -49
  68. data/spec/true_spec.rb +2 -4
  69. data/spec/undef_spec.rb +38 -53
  70. data/spec/until_spec.rb +13 -105
  71. data/spec/valias_spec.rb +2 -4
  72. data/spec/while_spec.rb +35 -117
  73. data/spec/xstr_spec.rb +2 -4
  74. data/spec/yield_spec.rb +22 -42
  75. data/spec/zsuper_spec.rb +8 -16
  76. metadata +64 -22
  77. data/spec/cvdecl_spec.rb +0 -12
@@ -1,11 +1,9 @@
1
1
  describe "An Back_ref node" do
2
- relates "[$&, $`, $', $+]" do
3
- parse do
4
- [:array,
5
- [:back_ref, :&],
6
- [:back_ref, :`],
7
- [:back_ref, :"'"],
8
- [:back_ref, :+]]
9
- end
2
+ parse "[$&, $`, $', $+]" do
3
+ [:array,
4
+ [:back_ref, :&],
5
+ [:back_ref, :`],
6
+ [:back_ref, :"'"],
7
+ [:back_ref, :+]]
10
8
  end
11
9
  end
data/spec/call_spec.rb CHANGED
@@ -1,268 +1,184 @@
1
1
  describe "A Call node" do
2
- relates "self.method" do
3
- parse do
4
- [:call, [:self], :method, [:arglist]]
5
- end
2
+ parse "self.method" do
3
+ [:call, [:self], :method, [:arglist]]
6
4
  end
7
5
 
8
- relates "1.m(2)" do
9
- parse do
10
- [:call, [:lit, 1], :m, [:arglist, [:lit, 2]]]
11
- end
6
+ parse "1.m(2)" do
7
+ [:call, [:lit, 1], :m, [:arglist, [:lit, 2]]]
12
8
  end
13
9
 
14
- relates "h(1, 2, *a)" do
15
- parse do
16
- [:call, nil, :h,
17
- [:arglist,
18
- [:lit, 1],
19
- [:lit, 2],
20
- [:splat, [:call, nil, :a, [:arglist]]]]]
21
- end
10
+ parse "h(1, 2, *a)" do
11
+ [:call, nil, :h,
12
+ [:arglist,
13
+ [:lit, 1],
14
+ [:lit, 2],
15
+ [:splat, [:call, nil, :a, [:arglist]]]]]
22
16
  end
23
17
 
24
- relates <<-ruby do
18
+ parse <<-ruby do
25
19
  begin
26
20
  (1 + 1)
27
21
  end
28
22
  ruby
29
23
 
30
- parse do
31
- [:call, [:lit, 1], :+, [:arglist, [:lit, 1]]]
32
- end
24
+ [:call, [:lit, 1], :+, [:arglist, [:lit, 1]]]
33
25
  end
34
26
 
35
- relates "blah(*a)" do
36
- parse do
37
- [:call, nil, :blah,
38
- [:arglist, [:splat, [:call, nil, :a, [:arglist]]]]]
39
- end
27
+ parse "blah(*a)" do
28
+ [:call, nil, :blah,
29
+ [:arglist, [:splat, [:call, nil, :a, [:arglist]]]]]
40
30
  end
41
31
 
42
- relates "a.b(&c)" do
43
- parse do
44
- [:call,
45
- [:call, nil, :a, [:arglist]],
46
- :b,
47
- [:arglist, [:block_pass, [:call, nil, :c, [:arglist]]]]]
48
- end
32
+ parse "a.b(&c)" do
33
+ [:call,
34
+ [:call, nil, :a, [:arglist]],
35
+ :b,
36
+ [:arglist, [:block_pass, [:call, nil, :c, [:arglist]]]]]
49
37
  end
50
38
 
51
- relates "a.b(4, &c)" do
52
- parse do
53
- [:call,
54
- [:call, nil, :a, [:arglist]],
55
- :b,
56
- [:arglist, [:lit, 4], [:block_pass, [:call, nil, :c, [:arglist]]]]]
57
- end
39
+ parse "a.b(4, &c)" do
40
+ [:call,
41
+ [:call, nil, :a, [:arglist]],
42
+ :b,
43
+ [:arglist, [:lit, 4], [:block_pass, [:call, nil, :c, [:arglist]]]]]
58
44
  end
59
45
 
60
- relates "a.b(1, 2, 3, &c)" do
61
- parse do
62
- [:call,
63
- [:call, nil, :a, [:arglist]],
64
- :b,
65
- [:arglist,
66
- [:lit, 1],
67
- [:lit, 2],
68
- [:lit, 3],
69
- [:block_pass, [:call, nil, :c, [:arglist]]]]]
70
- end
46
+ parse "a.b(1, 2, 3, &c)" do
47
+ [:call,
48
+ [:call, nil, :a, [:arglist]],
49
+ :b,
50
+ [:arglist,
51
+ [:lit, 1],
52
+ [:lit, 2],
53
+ [:lit, 3],
54
+ [:block_pass, [:call, nil, :c, [:arglist]]]]]
71
55
  end
72
56
 
73
- relates "a(&b)" do
74
- parse do
75
- [:call,
76
- nil,
77
- :a,
78
- [:arglist, [:block_pass, [:call, nil, :b, [:arglist]]]]]
79
- end
57
+ parse "a(&b)" do
58
+ [:call,
59
+ nil,
60
+ :a,
61
+ [:arglist, [:block_pass, [:call, nil, :b, [:arglist]]]]]
80
62
  end
81
63
 
82
- relates "a(4, &b)" do
83
- parse do
84
- [:call,
85
- nil,
86
- :a,
87
- [:arglist, [:lit, 4], [:block_pass, [:call, nil, :b, [:arglist]]]]]
88
- end
64
+ parse "a(4, &b)" do
65
+ [:call,
66
+ nil,
67
+ :a,
68
+ [:arglist, [:lit, 4], [:block_pass, [:call, nil, :b, [:arglist]]]]]
89
69
  end
90
70
 
91
- relates "a(1, 2, 3, &b)" do
92
- parse do
93
- [:call,
94
- nil,
95
- :a,
96
- [:arglist,
97
- [:lit, 1],
98
- [:lit, 2],
99
- [:lit, 3],
100
- [:block_pass, [:call, nil, :b, [:arglist]]]]]
101
- end
71
+ parse "a(1, 2, 3, &b)" do
72
+ [:call,
73
+ nil,
74
+ :a,
75
+ [:arglist,
76
+ [:lit, 1],
77
+ [:lit, 2],
78
+ [:lit, 3],
79
+ [:block_pass, [:call, nil, :b, [:arglist]]]]]
102
80
  end
103
81
 
104
- relates "define_attr_method(:x, :sequence_name, &Proc.new { |*args| nil })" do
105
- parse do
106
- [:call,
107
- nil,
108
- :define_attr_method,
109
- [:arglist,
110
- [:lit, :x],
111
- [:lit, :sequence_name],
112
- [:block_pass,
113
- [:iter,
114
- [:call, [:const, :Proc], :new, [:arglist]],
115
- [:masgn, [:array, [:splat, [:lasgn, :args]]]],
116
- [:nil]]]]]
117
- end
82
+ parse "define_attr_method(:x, :sequence_name, &Proc.new { |*args| nil })" do
83
+ [:call,
84
+ nil,
85
+ :define_attr_method,
86
+ [:arglist,
87
+ [:lit, :x],
88
+ [:lit, :sequence_name],
89
+ [:block_pass,
90
+ [:call,
91
+ [:const, :Proc],
92
+ :new,
93
+ [:arglist, [:iter, [:args, :"*args"], [:nil]]]]]]]
118
94
  end
119
95
 
120
- relates "r.read_body(dest, &block)" do
121
- parse do
122
- [:call,
123
- [:call, nil, :r, [:arglist]],
124
- :read_body,
125
- [:arglist,
126
- [:call, nil, :dest, [:arglist]],
127
- [:block_pass, [:call, nil, :block, [:arglist]]]]]
128
- end
96
+ parse "r.read_body(dest, &block)" do
97
+ [:call,
98
+ [:call, nil, :r, [:arglist]],
99
+ :read_body,
100
+ [:arglist,
101
+ [:call, nil, :dest, [:arglist]],
102
+ [:block_pass, [:call, nil, :block, [:arglist]]]]]
129
103
  end
130
104
 
131
- relates "o.m(:a => 1, :b => 2)" do
132
- parse do
133
- [:call,
134
- [:call, nil, :o, [:arglist]],
135
- :m,
136
- [:arglist, [:hash, [:lit, :a], [:lit, 1], [:lit, :b], [:lit, 2]]]]
137
- end
105
+ parse "o.m(:a => 1, :b => 2)" do
106
+ [:call,
107
+ [:call, nil, :o, [:arglist]],
108
+ :m,
109
+ [:arglist, [:hash, [:lit, :a], [:lit, 1], [:lit, :b], [:lit, 2]]]]
138
110
  end
139
111
 
140
- relates "o.m(42, :a => 1, :b => 2)" do
141
- parse do
142
- [:call,
143
- [:call, nil, :o, [:arglist]],
144
- :m,
145
- [:arglist,
146
- [:lit, 42],
147
- [:hash, [:lit, :a], [:lit, 1], [:lit, :b], [:lit, 2]]]]
148
- end
112
+ parse "o.m(42, :a => 1, :b => 2)" do
113
+ [:call,
114
+ [:call, nil, :o, [:arglist]],
115
+ :m,
116
+ [:arglist,
117
+ [:lit, 42],
118
+ [:hash, [:lit, :a], [:lit, 1], [:lit, :b], [:lit, 2]]]]
149
119
  end
150
120
 
151
- relates "o.m(42, :a => 1, :b => 2, *c)" do
152
- parse do
153
- [:call,
154
- [:call, nil, :o, [:arglist]],
155
- :m,
156
- [:arglist,
157
- [:lit, 42],
158
- [:hash, [:lit, :a], [:lit, 1], [:lit, :b], [:lit, 2]],
159
- [:splat, [:call, nil, :c, [:arglist]]]]]
160
- end
121
+ parse "o.puts(42)" do
122
+ [:call, [:call, nil, :o, [:arglist]], :puts, [:arglist, [:lit, 42]]]
161
123
  end
162
124
 
163
- relates "a (1,2,3)" do
164
- parse do
165
- [:call, nil, :a, [:arglist, [:lit, 1], [:lit, 2], [:lit, 3]]]
166
- end
125
+ parse "1.b(c)" do
126
+ [:call, [:lit, 1], :b, [:arglist, [:call, nil, :c, [:arglist]]]]
167
127
  end
168
128
 
169
- relates "o.puts(42)" do
170
- parse do
171
- [:call, [:call, nil, :o, [:arglist]], :puts, [:arglist, [:lit, 42]]]
172
- end
129
+ parse "(v = (1 + 1)).zero?" do
130
+ [:call,
131
+ [:lasgn, :v, [:call, [:lit, 1], :+, [:arglist, [:lit, 1]]]],
132
+ :zero?,
133
+ [:arglist]]
173
134
  end
174
135
 
175
- relates "1.b(c)" do
176
- parse do
177
- [:call, [:lit, 1], :b, [:arglist, [:call, nil, :c, [:arglist]]]]
178
- end
136
+ parse "-2**31" do
137
+ [:call,
138
+ [:call, [:lit, 2], :**, [:arglist, [:lit, 31]]],
139
+ :-@,
140
+ [:arglist]]
179
141
  end
180
142
 
181
- relates "(v = (1 + 1)).zero?" do
182
- parse do
183
- [:call,
184
- [:lasgn, :v, [:call, [:lit, 1], :+, [:arglist, [:lit, 1]]]],
185
- :zero?,
186
- [:arglist]]
187
- end
143
+ parse "a[]" do
144
+ [:call, [:call, nil, :a, [:arglist]], :[], [:arglist]]
188
145
  end
189
146
 
190
- relates "-2**31" do
191
- parse do
192
- [:call,
193
- [:call, [:lit, 2], :**, [:arglist, [:lit, 31]]],
194
- :-@,
195
- [:arglist]]
196
- end
147
+ parse "m(:a => 1, :b => 2)" do
148
+ [:call,
149
+ nil,
150
+ :m,
151
+ [:arglist, [:hash, [:lit, :a], [:lit, 1], [:lit, :b], [:lit, 2]]]]
197
152
  end
198
153
 
199
- relates "a[]" do
200
- parse do
201
- [:call, [:call, nil, :a, [:arglist]], :[], [:arglist]]
202
- end
154
+ parse "m(42, :a => 1, :b => 2)" do
155
+ [:call,
156
+ nil,
157
+ :m,
158
+ [:arglist, [:lit, 42], [:hash, [:lit, :a], [:lit, 1], [:lit, :b], [:lit, 2]]]]
203
159
  end
204
160
 
205
- relates "m(:a => 1, :b => 2)" do
206
- parse do
207
- [:call,
208
- nil,
209
- :m,
210
- [:arglist, [:hash, [:lit, :a], [:lit, 1], [:lit, :b], [:lit, 2]]]]
211
- end
161
+ parse "m(42)" do
162
+ [:call, nil, :m, [:arglist, [:lit, 42]]]
212
163
  end
213
164
 
214
- relates "m(42, :a => 1, :b => 2)" do
215
- parse do
216
- [:call,
217
- nil,
218
- :m,
219
- [:arglist, [:lit, 42], [:hash, [:lit, :a], [:lit, 1], [:lit, :b], [:lit, 2]]]]
220
- end
165
+ parse "a(:b) { :c }" do
166
+ [:call, nil, :a, [:arglist, [:lit, :b], [:iter, [:args], [:lit, :c]]]]
221
167
  end
222
168
 
223
- relates "m(42, :a => 1, :b => 2, *c)" do
224
- parse do
225
- [:call,
226
- nil,
227
- :m,
228
- [:arglist,
229
- [:lit, 42],
230
- [:hash, [:lit, :a], [:lit, 1], [:lit, :b], [:lit, 2]],
231
- [:splat, [:call, nil, :c, [:arglist]]]]]
232
- end
169
+ parse "a [42]" do
170
+ [:call, nil, :a, [:arglist, [:array, [:lit, 42]]]]
233
171
  end
234
172
 
235
- relates "m(42)" do
236
- parse do
237
- [:call, nil, :m, [:arglist, [:lit, 42]]]
238
- end
173
+ parse "42 if block_given?" do
174
+ [:if, [:call, nil, :block_given?, [:arglist]], [:lit, 42], nil]
239
175
  end
240
176
 
241
- relates "a(:b) { :c }" do
242
- parse do
243
- [:iter, [:call, nil, :a, [:arglist, [:lit, :b]]], nil, [:lit, :c]]
244
- end
177
+ parse "method" do
178
+ [:call, nil, :method, [:arglist]]
245
179
  end
246
180
 
247
- relates "a [42]" do
248
- parse do
249
- [:call, nil, :a, [:arglist, [:array, [:lit, 42]]]]
250
- end
251
- end
252
-
253
- relates "42 if block_given?" do
254
- parse do
255
- [:if, [:call, nil, :block_given?, [:arglist]], [:lit, 42], nil]
256
- end
257
- end
258
-
259
- relates "method" do
260
- parse do
261
- [:call, nil, :method, [:arglist]]
262
- end
263
- end
264
-
265
- relates <<-ruby do
181
+ parse <<-ruby do
266
182
  a << begin
267
183
  b
268
184
  rescue
@@ -270,29 +186,25 @@ describe "A Call node" do
270
186
  end
271
187
  ruby
272
188
 
273
- parse do
274
- [:call,
275
- [:call, nil, :a, [:arglist]],
276
- :<<,
277
- [:arglist,
278
- [:rescue,
279
- [:call, nil, :b, [:arglist]],
280
- [:resbody, [:array], [:call, nil, :c, [:arglist]]]]]]
281
- end
189
+ [:call,
190
+ [:call, nil, :a, [:arglist]],
191
+ :<<,
192
+ [:arglist,
193
+ [:rescue,
194
+ [:call, nil, :b, [:arglist]],
195
+ [:resbody,
196
+ [:array, [:const, :StandardError]],
197
+ [:call, nil, :c, [:arglist]]]]]]
282
198
  end
283
199
 
284
- relates "meth([*[1]])" do
285
- parse do
286
- [:call,
287
- nil,
288
- :meth,
289
- [:arglist, [:array, [:splat, [:array, [:lit, 1]]]]]]
290
- end
200
+ parse "meth([*[1]])" do
201
+ [:call,
202
+ nil,
203
+ :meth,
204
+ [:arglist, [:splat, [:array, [:lit, 1]]]]]
291
205
  end
292
206
 
293
- relates "meth(*[1])" do
294
- parse do
295
- [:call, nil, :meth, [:arglist, [:splat, [:array, [:lit, 1]]]]]
296
- end
207
+ parse "meth(*[1])" do
208
+ [:call, nil, :meth, [:arglist, [:splat, [:array, [:lit, 1]]]]]
297
209
  end
298
210
  end