mutant 0.11.22 → 0.11.24

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 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