mutant 0.5.18 → 0.5.19
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.
- checksums.yaml +4 -4
- data/Changelog.md +7 -0
- data/README.md +2 -2
- data/config/flay.yml +1 -1
- data/lib/mutant.rb +4 -1
- data/lib/mutant/meta/example/dsl.rb +11 -0
- data/lib/mutant/mutator/node.rb +29 -5
- data/lib/mutant/mutator/node/and_asgn.rb +34 -0
- data/lib/mutant/mutator/node/binary.rb +1 -1
- data/lib/mutant/mutator/node/block.rb +1 -1
- data/lib/mutant/mutator/node/break.rb +29 -0
- data/lib/mutant/mutator/node/case.rb +1 -1
- data/lib/mutant/mutator/node/conditional_loop.rb +1 -1
- data/lib/mutant/mutator/node/const.rb +1 -1
- data/lib/mutant/mutator/node/defined.rb +30 -0
- data/lib/mutant/mutator/node/dstr.rb +1 -1
- data/lib/mutant/mutator/node/dsym.rb +1 -1
- data/lib/mutant/mutator/node/generic.rb +1 -1
- data/lib/mutant/mutator/node/if.rb +4 -2
- data/lib/mutant/mutator/node/kwbegin.rb +1 -1
- data/lib/mutant/mutator/node/literal/array.rb +1 -1
- data/lib/mutant/mutator/node/literal/fixnum.rb +1 -1
- data/lib/mutant/mutator/node/literal/float.rb +1 -1
- data/lib/mutant/mutator/node/literal/hash.rb +1 -1
- data/lib/mutant/mutator/node/literal/range.rb +1 -1
- data/lib/mutant/mutator/node/literal/regex.rb +1 -1
- data/lib/mutant/mutator/node/literal/string.rb +1 -1
- data/lib/mutant/mutator/node/literal/symbol.rb +1 -1
- data/lib/mutant/mutator/node/masgn.rb +1 -1
- data/lib/mutant/mutator/node/match_current_line.rb +1 -1
- data/lib/mutant/mutator/node/named_value/access.rb +1 -1
- data/lib/mutant/mutator/node/named_value/variable_assignment.rb +1 -1
- data/lib/mutant/mutator/node/{loop_control.rb → next.rb} +5 -9
- data/lib/mutant/mutator/node/op_asgn.rb +9 -4
- data/lib/mutant/mutator/node/or_asgn.rb +6 -2
- data/lib/mutant/mutator/node/resbody.rb +2 -2
- data/lib/mutant/mutator/node/return.rb +1 -1
- data/lib/mutant/mutator/node/send.rb +1 -1
- data/lib/mutant/mutator/node/splat.rb +1 -1
- data/lib/mutant/mutator/node/super.rb +1 -1
- data/lib/mutant/mutator/node/yield.rb +1 -1
- data/lib/mutant/mutator/node/zsuper.rb +1 -1
- data/lib/mutant/node_helpers.rb +6 -5
- data/lib/mutant/version.rb +1 -1
- data/meta/and.rb +1 -1
- data/meta/and_asgn.rb +3 -1
- data/meta/array.rb +2 -2
- data/meta/block.rb +6 -4
- data/meta/block_pass.rb +1 -1
- data/meta/blockarg.rb +1 -1
- data/meta/break.rb +1 -2
- data/meta/case.rb +104 -183
- data/meta/cbase.rb +1 -1
- data/meta/const.rb +1 -1
- data/meta/cvar.rb +1 -1
- data/meta/cvasgn.rb +1 -1
- data/meta/{define.rb → def.rb} +2 -1
- data/meta/dstr.rb +4 -1
- data/meta/dsym.rb +4 -2
- data/meta/ensure.rb +1 -1
- data/meta/false.rb +8 -0
- data/meta/float.rb +3 -4
- data/meta/gvar.rb +1 -1
- data/meta/gvasgn.rb +1 -1
- data/meta/hash.rb +1 -2
- data/meta/if.rb +25 -27
- data/meta/{fixnum.rb → int.rb} +1 -2
- data/meta/ivasgn.rb +1 -1
- data/meta/kwbegin.rb +1 -1
- data/meta/lvar.rb +2 -0
- data/meta/lvasgn.rb +1 -1
- data/meta/masgn.rb +1 -1
- data/meta/match_current_line.rb +1 -1
- data/meta/next.rb +1 -1
- data/meta/op_assgn.rb +3 -1
- data/meta/{binary.rb → or.rb} +1 -1
- data/meta/or_asgn.rb +4 -2
- data/meta/range.rb +6 -2
- data/meta/regex.rb +4 -2
- data/meta/rescue.rb +7 -6
- data/meta/restarg.rb +3 -1
- data/meta/return.rb +3 -2
- data/meta/send.rb +48 -51
- data/meta/{string.rb → str.rb} +1 -1
- data/meta/super.rb +6 -3
- data/meta/symbol.rb +1 -1
- data/meta/true.rb +8 -0
- data/meta/until.rb +17 -0
- data/meta/while.rb +4 -2
- data/meta/yield.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- metadata +13 -8
- data/meta/unless.rb +0 -15
data/meta/rescue.rb
CHANGED
@@ -3,27 +3,28 @@
|
|
3
3
|
Mutant::Meta::Example.add do
|
4
4
|
source 'begin; rescue ExceptionA, ExceptionB => error; true; end'
|
5
5
|
|
6
|
-
|
6
|
+
singleton_mutations
|
7
7
|
mutation 'begin; rescue ExceptionA, ExceptionB; true; end'
|
8
|
+
mutation 'begin; rescue self, ExceptionB => error; true; end'
|
9
|
+
mutation 'begin; rescue ExceptionA, self => error; true; end'
|
8
10
|
mutation 'begin; rescue ExceptionA, ExceptionB => error; false; end'
|
9
11
|
mutation 'begin; rescue ExceptionA, ExceptionB => error; nil; end'
|
10
|
-
mutation 'begin; rescue ExceptionA => error; true; end'
|
11
|
-
mutation 'begin; rescue ExceptionB => error; true; end'
|
12
12
|
end
|
13
13
|
|
14
14
|
Mutant::Meta::Example.add do
|
15
15
|
source 'begin; rescue SomeException => error; true; end'
|
16
16
|
|
17
|
-
|
17
|
+
singleton_mutations
|
18
18
|
mutation 'begin; rescue SomeException; true; end'
|
19
19
|
mutation 'begin; rescue SomeException => error; false; end'
|
20
20
|
mutation 'begin; rescue SomeException => error; nil; end'
|
21
|
+
mutation 'begin; rescue self => error; true; end'
|
21
22
|
end
|
22
23
|
|
23
24
|
Mutant::Meta::Example.add do
|
24
25
|
source 'begin; rescue => error; true end'
|
25
26
|
|
26
|
-
|
27
|
+
singleton_mutations
|
27
28
|
mutation 'begin; rescue => error; false; end'
|
28
29
|
mutation 'begin; rescue => error; nil; end'
|
29
30
|
mutation 'begin; rescue; true; end'
|
@@ -32,7 +33,7 @@ end
|
|
32
33
|
Mutant::Meta::Example.add do
|
33
34
|
source 'begin; rescue; true end'
|
34
35
|
|
35
|
-
|
36
|
+
singleton_mutations
|
36
37
|
mutation 'begin; rescue; false; end'
|
37
38
|
mutation 'begin; rescue; nil; end'
|
38
39
|
end
|
data/meta/restarg.rb
CHANGED
data/meta/return.rb
CHANGED
@@ -3,13 +3,14 @@
|
|
3
3
|
Mutant::Meta::Example.add do
|
4
4
|
source 'return'
|
5
5
|
|
6
|
-
|
6
|
+
singleton_mutations
|
7
7
|
end
|
8
8
|
|
9
9
|
Mutant::Meta::Example.add do
|
10
10
|
source 'return foo'
|
11
11
|
|
12
|
+
singleton_mutations
|
12
13
|
mutation 'foo'
|
13
14
|
mutation 'return nil'
|
14
|
-
mutation '
|
15
|
+
mutation 'return self'
|
15
16
|
end
|
data/meta/send.rb
CHANGED
@@ -3,14 +3,14 @@
|
|
3
3
|
Mutant::Meta::Example.add do
|
4
4
|
source 'reverse_each'
|
5
5
|
|
6
|
-
|
6
|
+
singleton_mutations
|
7
7
|
mutation 'each'
|
8
8
|
end
|
9
9
|
|
10
10
|
Mutant::Meta::Example.add do
|
11
11
|
source 'reverse_map'
|
12
12
|
|
13
|
-
|
13
|
+
singleton_mutations
|
14
14
|
mutation 'map'
|
15
15
|
mutation 'each'
|
16
16
|
end
|
@@ -18,18 +18,20 @@ end
|
|
18
18
|
Mutant::Meta::Example.add do
|
19
19
|
source 'map'
|
20
20
|
|
21
|
-
|
21
|
+
singleton_mutations
|
22
22
|
mutation 'each'
|
23
23
|
end
|
24
24
|
|
25
25
|
Mutant::Meta::Example.add do
|
26
26
|
source 'foo == bar'
|
27
27
|
|
28
|
+
singleton_mutations
|
28
29
|
mutation 'foo'
|
29
30
|
mutation 'bar'
|
30
31
|
mutation 'nil == bar'
|
32
|
+
mutation 'self == bar'
|
31
33
|
mutation 'foo == nil'
|
32
|
-
mutation '
|
34
|
+
mutation 'foo == self'
|
33
35
|
mutation 'foo.eql?(bar)'
|
34
36
|
mutation 'foo.equal?(bar)'
|
35
37
|
end
|
@@ -37,43 +39,40 @@ end
|
|
37
39
|
Mutant::Meta::Example.add do
|
38
40
|
source 'foo.gsub(a, b)'
|
39
41
|
|
42
|
+
singleton_mutations
|
40
43
|
mutation 'foo'
|
41
44
|
mutation 'foo.gsub(a)'
|
42
45
|
mutation 'foo.gsub(b)'
|
43
46
|
mutation 'foo.gsub'
|
44
47
|
mutation 'foo.sub(a, b)'
|
45
48
|
mutation 'foo.gsub(a, nil)'
|
49
|
+
mutation 'foo.gsub(a, self)'
|
46
50
|
mutation 'foo.gsub(nil, b)'
|
51
|
+
mutation 'foo.gsub(self, b)'
|
47
52
|
mutation 'nil.gsub(a, b)'
|
48
|
-
mutation '
|
53
|
+
mutation 'self.gsub(a, b)'
|
49
54
|
end
|
50
55
|
|
51
56
|
Mutant::Meta::Example.add do
|
52
57
|
source 'foo.send(bar)'
|
53
58
|
|
59
|
+
singleton_mutations
|
54
60
|
mutation 'foo.send'
|
55
61
|
mutation 'foo.public_send(bar)'
|
56
62
|
mutation 'bar'
|
57
63
|
mutation 'foo'
|
64
|
+
mutation 'self.send(bar)'
|
58
65
|
mutation 'foo.send(nil)'
|
66
|
+
mutation 'foo.send(self)'
|
59
67
|
mutation 'nil.send(bar)'
|
60
|
-
mutation 'nil'
|
61
68
|
end
|
62
69
|
|
63
70
|
Mutant::Meta::Example.add do
|
64
|
-
source 'self.
|
71
|
+
source 'self.bar = baz'
|
65
72
|
|
66
|
-
|
67
|
-
mutation '
|
68
|
-
mutation '
|
69
|
-
end
|
70
|
-
|
71
|
-
Mutant::Meta::Example.add do
|
72
|
-
source 'self.bar=baz'
|
73
|
-
|
74
|
-
mutation 'nil'
|
75
|
-
mutation 'self.bar=nil'
|
76
|
-
mutation 'self'
|
73
|
+
singleton_mutations
|
74
|
+
mutation 'self.bar = nil'
|
75
|
+
mutation 'self.bar = self'
|
77
76
|
mutation 'self.bar'
|
78
77
|
mutation 'baz'
|
79
78
|
# This one could probably be removed
|
@@ -81,105 +80,107 @@ Mutant::Meta::Example.add do
|
|
81
80
|
end
|
82
81
|
|
83
82
|
Mutant::Meta::Example.add do
|
84
|
-
source 'foo.bar=baz'
|
83
|
+
source 'foo.bar = baz'
|
85
84
|
|
85
|
+
singleton_mutations
|
86
86
|
mutation 'foo'
|
87
|
-
mutation 'nil'
|
88
|
-
mutation 'foo.bar=
|
87
|
+
mutation 'foo.bar = nil'
|
88
|
+
mutation 'foo.bar = self'
|
89
|
+
mutation 'self.bar = baz'
|
89
90
|
mutation 'foo.bar'
|
90
91
|
mutation 'baz'
|
91
92
|
# This one could probably be removed
|
92
|
-
mutation 'nil.bar=baz'
|
93
|
+
mutation 'nil.bar = baz'
|
93
94
|
end
|
94
95
|
|
95
96
|
Mutant::Meta::Example.add do
|
96
97
|
source 'foo[bar]=baz'
|
97
98
|
|
99
|
+
singleton_mutations
|
98
100
|
mutation 'foo'
|
99
|
-
mutation 'nil'
|
100
101
|
end
|
101
102
|
|
102
103
|
Mutant::Meta::Example.add do
|
103
104
|
source 'foo(*bar)'
|
104
105
|
|
106
|
+
singleton_mutations
|
105
107
|
mutation 'foo'
|
106
108
|
mutation 'foo(nil)'
|
107
109
|
mutation 'foo(bar)'
|
110
|
+
mutation 'foo(self)'
|
108
111
|
mutation 'foo(*nil)'
|
109
|
-
mutation '
|
112
|
+
mutation 'foo(*self)'
|
110
113
|
end
|
111
114
|
|
112
115
|
Mutant::Meta::Example.add do
|
113
116
|
source 'foo(&bar)'
|
114
117
|
|
118
|
+
singleton_mutations
|
115
119
|
mutation 'foo'
|
116
|
-
mutation 'nil'
|
117
120
|
end
|
118
121
|
|
119
122
|
Mutant::Meta::Example.add do
|
120
123
|
source 'foo[*bar]'
|
121
124
|
|
125
|
+
singleton_mutations
|
122
126
|
mutation 'foo'
|
123
|
-
mutation 'nil'
|
124
127
|
end
|
125
128
|
|
126
129
|
Mutant::Meta::Example.add do
|
127
130
|
source 'foo'
|
128
131
|
|
129
|
-
|
132
|
+
singleton_mutations
|
130
133
|
end
|
131
134
|
|
132
135
|
Mutant::Meta::Example.add do
|
133
136
|
source 'self.foo'
|
134
137
|
|
138
|
+
singleton_mutations
|
135
139
|
mutation 'foo'
|
136
|
-
mutation 'self'
|
137
140
|
mutation 'nil.foo'
|
138
|
-
mutation 'nil'
|
139
141
|
end
|
140
142
|
|
141
143
|
Unparser::Constants::KEYWORDS.each do |keyword|
|
142
144
|
Mutant::Meta::Example.add do
|
143
145
|
source "self.#{keyword}"
|
144
146
|
|
147
|
+
singleton_mutations
|
145
148
|
mutation "nil.#{keyword}"
|
146
|
-
mutation 'nil'
|
147
|
-
mutation 'self'
|
148
149
|
end
|
149
150
|
end
|
150
151
|
|
151
152
|
Mutant::Meta::Example.add do
|
152
153
|
source 'foo.bar'
|
153
154
|
|
155
|
+
singleton_mutations
|
154
156
|
mutation 'foo'
|
155
157
|
mutation 'nil.bar'
|
156
|
-
mutation '
|
158
|
+
mutation 'self.bar'
|
157
159
|
end
|
158
160
|
|
159
161
|
Mutant::Meta::Example.add do
|
160
162
|
source 'self.class.foo'
|
161
163
|
|
164
|
+
singleton_mutations
|
162
165
|
mutation 'self.class'
|
163
166
|
mutation 'self.foo'
|
164
167
|
mutation 'nil.class.foo'
|
165
168
|
mutation 'nil.foo'
|
166
|
-
mutation 'nil'
|
167
169
|
end
|
168
170
|
|
169
171
|
Mutant::Meta::Example.add do
|
170
172
|
source 'foo(nil)'
|
171
173
|
|
174
|
+
singleton_mutations
|
172
175
|
mutation 'foo'
|
173
|
-
mutation 'nil'
|
174
176
|
end
|
175
177
|
|
176
178
|
Mutant::Meta::Example.add do
|
177
179
|
source 'self.foo(nil)'
|
178
180
|
|
179
|
-
|
181
|
+
singleton_mutations
|
180
182
|
mutation 'self.foo'
|
181
183
|
mutation 'foo(nil)'
|
182
|
-
mutation 'nil'
|
183
184
|
mutation 'nil.foo(nil)'
|
184
185
|
end
|
185
186
|
|
@@ -187,54 +188,50 @@ Unparser::Constants::KEYWORDS.each do |keyword|
|
|
187
188
|
Mutant::Meta::Example.add do
|
188
189
|
source "foo.#{keyword}(nil)"
|
189
190
|
|
191
|
+
singleton_mutations
|
192
|
+
mutation "self.#{keyword}(nil)"
|
190
193
|
mutation "foo.#{keyword}"
|
191
194
|
mutation 'foo'
|
192
195
|
mutation "nil.#{keyword}(nil)"
|
193
|
-
mutation 'nil'
|
194
196
|
end
|
195
197
|
end
|
196
198
|
|
197
199
|
Mutant::Meta::Example.add do
|
198
200
|
source 'foo(nil, nil)'
|
199
201
|
|
202
|
+
singleton_mutations
|
200
203
|
mutation 'foo()'
|
201
204
|
mutation 'foo(nil)'
|
202
|
-
mutation 'nil'
|
203
205
|
end
|
204
206
|
|
205
207
|
Mutant::Meta::Example.add do
|
206
208
|
source '(left - right) / foo'
|
207
209
|
|
210
|
+
singleton_mutations
|
208
211
|
mutation 'foo'
|
209
212
|
mutation '(left - right)'
|
210
213
|
mutation 'left / foo'
|
211
214
|
mutation 'right / foo'
|
212
215
|
mutation '(left - right) / nil'
|
216
|
+
mutation '(left - right) / self'
|
213
217
|
mutation '(left - nil) / foo'
|
218
|
+
mutation '(left - self) / foo'
|
214
219
|
mutation '(nil - right) / foo'
|
220
|
+
mutation '(self - right) / foo'
|
215
221
|
mutation 'nil / foo'
|
216
|
-
mutation '
|
222
|
+
mutation 'self / foo'
|
217
223
|
end
|
218
224
|
|
219
225
|
(Mutant::BINARY_METHOD_OPERATORS - [:==, :eql?]).each do |operator|
|
220
226
|
Mutant::Meta::Example.add do
|
221
227
|
source "true #{operator} false"
|
222
228
|
|
229
|
+
singleton_mutations
|
230
|
+
mutation 'true'
|
231
|
+
mutation 'false'
|
223
232
|
mutation "false #{operator} false"
|
224
233
|
mutation "nil #{operator} false"
|
225
234
|
mutation "true #{operator} true"
|
226
235
|
mutation "true #{operator} nil"
|
227
|
-
mutation 'true'
|
228
|
-
mutation 'false'
|
229
|
-
mutation 'nil'
|
230
|
-
end
|
231
|
-
|
232
|
-
Mutant::Meta::Example.add do
|
233
|
-
source "left #{operator} right"
|
234
|
-
mutation 'left'
|
235
|
-
mutation 'right'
|
236
|
-
mutation "left #{operator} nil"
|
237
|
-
mutation "nil #{operator} right"
|
238
|
-
mutation 'nil'
|
239
236
|
end
|
240
237
|
end
|
data/meta/{string.rb → str.rb}
RENAMED
data/meta/super.rb
CHANGED
@@ -3,24 +3,27 @@
|
|
3
3
|
Mutant::Meta::Example.add do
|
4
4
|
source 'super'
|
5
5
|
|
6
|
-
|
6
|
+
singleton_mutations
|
7
7
|
end
|
8
8
|
|
9
9
|
Mutant::Meta::Example.add do
|
10
10
|
source 'super()'
|
11
11
|
|
12
|
+
singleton_mutations
|
13
|
+
# this is zsuper a totally differend node thant super()
|
12
14
|
mutation 'super'
|
13
|
-
mutation 'nil'
|
14
15
|
end
|
15
16
|
|
16
17
|
Mutant::Meta::Example.add do
|
17
18
|
source 'super(foo, bar)'
|
18
19
|
|
20
|
+
singleton_mutations
|
19
21
|
mutation 'super'
|
20
22
|
mutation 'super()'
|
21
23
|
mutation 'super(foo)'
|
22
24
|
mutation 'super(bar)'
|
23
25
|
mutation 'super(foo, nil)'
|
26
|
+
mutation 'super(foo, self)'
|
24
27
|
mutation 'super(nil, bar)'
|
25
|
-
mutation '
|
28
|
+
mutation 'super(self, bar)'
|
26
29
|
end
|
data/meta/symbol.rb
CHANGED
data/meta/true.rb
ADDED
data/meta/until.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
Mutant::Meta::Example.add do
|
4
|
+
source 'until true; foo; bar; end'
|
5
|
+
|
6
|
+
singleton_mutations
|
7
|
+
mutation 'until true; bar; end'
|
8
|
+
mutation 'until true; foo; end'
|
9
|
+
mutation 'until true; end'
|
10
|
+
mutation 'until false; foo; bar; end'
|
11
|
+
mutation 'until nil; foo; bar; end'
|
12
|
+
mutation 'until true; foo; nil; end'
|
13
|
+
mutation 'until true; foo; self; end'
|
14
|
+
mutation 'until true; nil; bar; end'
|
15
|
+
mutation 'until true; self; bar; end'
|
16
|
+
mutation 'until true; raise; end'
|
17
|
+
end
|
data/meta/while.rb
CHANGED
@@ -3,6 +3,9 @@
|
|
3
3
|
Mutant::Meta::Example.add do
|
4
4
|
source 'while true; foo; bar; end'
|
5
5
|
|
6
|
+
singleton_mutations
|
7
|
+
mutation 'while true; self; bar; end'
|
8
|
+
mutation 'while true; foo; self; end'
|
6
9
|
mutation 'while true; bar; end'
|
7
10
|
mutation 'while true; foo; end'
|
8
11
|
mutation 'while true; end'
|
@@ -11,14 +14,13 @@ Mutant::Meta::Example.add do
|
|
11
14
|
mutation 'while true; foo; nil; end'
|
12
15
|
mutation 'while true; nil; bar; end'
|
13
16
|
mutation 'while true; raise; end'
|
14
|
-
mutation 'nil'
|
15
17
|
end
|
16
18
|
|
17
19
|
Mutant::Meta::Example.add do
|
18
20
|
source 'while true; end'
|
19
21
|
|
22
|
+
singleton_mutations
|
20
23
|
mutation 'while true; raise; end'
|
21
24
|
mutation 'while false; end'
|
22
25
|
mutation 'while nil; end'
|
23
|
-
mutation 'nil'
|
24
26
|
end
|