mutant 0.11.22 → 0.11.24

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bf5fb7800ce81d8fa90585c0dbd00ef9e2f2d21fa1ffbb788cbb59bb9323f677
4
- data.tar.gz: 206c2db89f0cfca28b088059a68b0715974dffee6062a8825dd27c703ecbb245
3
+ metadata.gz: fce1f18a168ceb279743d1d6a1bb46226568faba189d4fb6eb7a789a6cd1a4c5
4
+ data.tar.gz: 6353bde0559ed50cd5f6111f17b815e072b92c9c70d11b8cc5354b6adf0d790b
5
5
  SHA512:
6
- metadata.gz: 3923e0d8c6927da2c7f6ca9915fd84c98e032708bb41b9c10c91cca92503226a1d04d09b20970ffad44b06e0ca7ff20215609d385f927ea0880a8b60bafcad93
7
- data.tar.gz: 43834f9ec8af1dd4a65b307cf43af4acaffcb839c3c76fe52069dedb2201d80c7a81e313c6e4742fd9d28f81229f36f72bbfb5f4a7c119d13a001705648993b8
6
+ metadata.gz: 67ad06623a1b89faf01739d36a89b3226bd3f07324ccc6252e7457e1c5fd6000bb14332825dd5df5a9294fdab1338b27b71e3baeffd676f14c8ac6ed6ca8aaa7
7
+ data.tar.gz: 68b0a0396ac6d25270d54069ea49eaaa0c70409ec684615673a8f84193ea568d005f3606b51f3868911e05e4695ed04db80532c04b0070130d915dd2a2d371bf
@@ -391,6 +391,16 @@ module Mutant
391
391
  fixed: EMPTY_ARRAY,
392
392
  variable: nil
393
393
  ),
394
+ Node.new(
395
+ type: :forwarded_kwrestarg,
396
+ fixed: EMPTY_ARRAY,
397
+ variable: nil
398
+ ),
399
+ Node.new(
400
+ type: :forwarded_restarg,
401
+ fixed: EMPTY_ARRAY,
402
+ variable: nil
403
+ ),
394
404
  Node.new(
395
405
  type: :for,
396
406
  fixed: Node.fixed(
@@ -25,18 +25,22 @@ module Mutant
25
25
  children.each_with_index do |removed, index|
26
26
  new_arguments = children.dup
27
27
  new_arguments.delete_at(index)
28
- unless n_forward_arg?(removed) || removed_block_arg?(new_arguments) || only_mlhs?(new_arguments)
28
+ unless forward_type?(removed) || removed_block_arg?(new_arguments) || only_mlhs?(new_arguments)
29
29
  emit_type(*new_arguments)
30
30
  end
31
31
  end
32
32
  end
33
33
 
34
+ def forward_type?(removed)
35
+ n_forward_arg?(removed) || n_restarg?(removed) || n_kwrestarg?(removed)
36
+ end
37
+
34
38
  def only_mlhs?(new_arguments)
35
39
  new_arguments.one? && n_mlhs?(new_arguments.first)
36
40
  end
37
41
 
38
42
  def forward_arg?
39
- children.last && n_forward_arg?(children.last)
43
+ children.any?(&method(:forward_type?))
40
44
  end
41
45
 
42
46
  def removed_block_arg?(new_arguments)
@@ -54,7 +54,7 @@ module Mutant
54
54
  end
55
55
 
56
56
  def valid_send_mutation?(node)
57
- return unless n_send?(node)
57
+ return false unless n_send?(node)
58
58
 
59
59
  last = AST::Meta::Send.new(node: node).arguments.last
60
60
 
@@ -223,7 +223,7 @@ module Mutant
223
223
 
224
224
  argument = Mutant::Util.one(arguments)
225
225
 
226
- return if n_kwargs?(argument) || n_forwarded_args?(argument)
226
+ return if n_kwargs?(argument) || n_forwarded_args?(argument) || n_forwarded_restarg?(argument)
227
227
 
228
228
  emit_propagation(argument)
229
229
  end
@@ -103,7 +103,7 @@ module Mutant
103
103
  end
104
104
 
105
105
  def emit_replacement
106
- new_text = MAP[input.quantifier.text]
106
+ new_text = MAP[input.quantifier.text] or return
107
107
 
108
108
  emit(mk_dup.tap { |new| new.quantifier.text = new_text })
109
109
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Mutant
4
4
  # Current mutant version
5
- VERSION = '0.11.22'
5
+ VERSION = '0.11.24'
6
6
  end # Mutant
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mutant
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.22
4
+ version: 0.11.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - Markus Schirp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-17 00:00:00.000000000 Z
11
+ date: 2023-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: diff-lcs
@@ -31,6 +31,9 @@ dependencies:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: 3.2.2
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 3.2.2.4
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
@@ -38,20 +41,23 @@ dependencies:
38
41
  - - "~>"
39
42
  - !ruby/object:Gem::Version
40
43
  version: 3.2.2
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 3.2.2.4
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: regexp_parser
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: 2.6.1
53
+ version: 2.8.2
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: 2.6.1
60
+ version: 2.8.2
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: sorbet-runtime
57
63
  requirement: !ruby/object:Gem::Requirement
@@ -72,14 +78,14 @@ dependencies:
72
78
  requirements:
73
79
  - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: 0.6.8
81
+ version: 0.6.9
76
82
  type: :runtime
77
83
  prerelease: false
78
84
  version_requirements: !ruby/object:Gem::Requirement
79
85
  requirements:
80
86
  - - "~>"
81
87
  - !ruby/object:Gem::Version
82
- version: 0.6.8
88
+ version: 0.6.9
83
89
  - !ruby/object:Gem::Dependency
84
90
  name: parallel
85
91
  requirement: !ruby/object:Gem::Requirement