mutant 0.8.11 → 0.8.12

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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +1 -0
  3. data/Changelog.md +29 -3
  4. data/README.md +2 -0
  5. data/config/flay.yml +1 -1
  6. data/lib/mutant.rb +6 -0
  7. data/lib/mutant/ast/meta/send.rb +26 -0
  8. data/lib/mutant/ast/regexp/transformer/direct.rb +1 -0
  9. data/lib/mutant/env/bootstrap.rb +7 -2
  10. data/lib/mutant/meta/example/dsl.rb +8 -0
  11. data/lib/mutant/mutator/node/generic.rb +52 -8
  12. data/lib/mutant/mutator/node/regexp.rb +0 -11
  13. data/lib/mutant/mutator/node/regexp/alternation_meta.rb +21 -0
  14. data/lib/mutant/mutator/node/regexp/capture_group.rb +26 -0
  15. data/lib/mutant/mutator/node/regexp/character_type.rb +29 -0
  16. data/lib/mutant/mutator/node/regexp/end_of_line_anchor.rb +21 -0
  17. data/lib/mutant/mutator/node/regexp/end_of_string_or_before_end_of_line_anchor.rb +21 -0
  18. data/lib/mutant/mutator/node/regexp/greedy_zero_or_more.rb +25 -0
  19. data/lib/mutant/mutator/node/send.rb +20 -1
  20. data/lib/mutant/reporter/cli.rb +2 -0
  21. data/lib/mutant/version.rb +1 -1
  22. data/lib/mutant/zombifier.rb +6 -1
  23. data/meta/regexp.rb +8 -30
  24. data/meta/regexp/character_types.rb +20 -0
  25. data/meta/regexp/regexp_alternation_meta.rb +11 -0
  26. data/meta/regexp/regexp_bol_anchor.rb +1 -6
  27. data/meta/regexp/regexp_bos_anchor.rb +2 -12
  28. data/meta/regexp/regexp_capture_group.rb +17 -0
  29. data/meta/regexp/regexp_eol_anchor.rb +8 -0
  30. data/meta/regexp/regexp_eos_anchor.rb +6 -0
  31. data/meta/regexp/regexp_eos_ob_eol_anchor.rb +8 -0
  32. data/meta/regexp/regexp_greedy_zero_or_more.rb +10 -0
  33. data/meta/regexp/regexp_root_expression.rb +1 -6
  34. data/meta/send.rb +65 -0
  35. data/mutant.gemspec +2 -2
  36. data/spec/integrations.yml +0 -21
  37. data/spec/support/shared_context.rb +0 -13
  38. data/spec/support/warnings.yml +1 -1
  39. data/spec/unit/mutant/actor/mailbox_spec.rb +0 -3
  40. data/spec/unit/mutant/ast/meta/send/proc_predicate_spec.rb +28 -0
  41. data/spec/unit/mutant/ast/regexp_spec.rb +8 -3
  42. data/spec/unit/mutant/cli_spec.rb +0 -1
  43. data/spec/unit/mutant/context_spec.rb +0 -7
  44. data/spec/unit/mutant/env_spec.rb +2 -17
  45. data/spec/unit/mutant/expression_spec.rb +0 -2
  46. data/spec/unit/mutant/matcher/compiler_spec.rb +0 -2
  47. data/spec/unit/mutant/matcher/method/instance_spec.rb +0 -2
  48. data/spec/unit/mutant/matcher/method/singleton_spec.rb +1 -2
  49. data/spec/unit/mutant/meta/example/dsl_spec.rb +16 -0
  50. data/spec/unit/mutant/mutation_spec.rb +0 -3
  51. data/spec/unit/mutant/mutator_spec.rb +0 -2
  52. data/spec/unit/mutant/parallel/master_spec.rb +0 -3
  53. data/spec/unit/mutant/parallel/worker_spec.rb +0 -1
  54. data/spec/unit/mutant/registry_spec.rb +3 -5
  55. data/spec/unit/mutant/reporter/cli/tput_spec.rb +1 -1
  56. data/spec/unit/mutant/result/env_spec.rb +0 -5
  57. data/spec/unit/mutant/result/mutation_spec.rb +1 -13
  58. data/spec/unit/mutant/runner_spec.rb +3 -16
  59. data/spec/unit/mutant/selector/expression_spec.rb +0 -1
  60. data/spec/unit/mutant/subject_spec.rb +1 -6
  61. metadata +24 -9
@@ -0,0 +1,28 @@
1
+ RSpec.describe Mutant::AST::Meta::Send, '#proc?' do
2
+ subject { described_class.new(node).proc? }
3
+
4
+ shared_context 'proc send' do |source|
5
+ let(:node) { Parser::CurrentRuby.parse(source).children.first }
6
+ end
7
+
8
+ shared_examples 'proc definition' do |*args|
9
+ include_context 'proc send', *args
10
+
11
+ it { should be(true) }
12
+ end
13
+
14
+ shared_examples 'not a proc definition' do |*args|
15
+ include_context 'proc send', *args
16
+
17
+ it { should be_falsey }
18
+ end
19
+
20
+ it_behaves_like 'proc definition', 'proc { }'
21
+ it_behaves_like 'proc definition', 'Proc.new { }'
22
+ it_behaves_like 'not a proc definition', 'new { }'
23
+ it_behaves_like 'not a proc definition', 'foo.proc { }'
24
+ it_behaves_like 'not a proc definition', 'Proc.blah { }'
25
+ it_behaves_like 'not a proc definition', 'Proc().new { }'
26
+ it_behaves_like 'not a proc definition', 'Foo.new { }'
27
+ it_behaves_like 'not a proc definition', 'blah { }'
28
+ end
@@ -70,9 +70,9 @@ module RegexpSpec
70
70
 
71
71
  include_context 'regexp transformation'
72
72
 
73
- return if regexp.encoding.name.eql?('ASCII-8BIT')
74
-
75
- include_context 'regexp round trip'
73
+ unless regexp.encoding.name.eql?('ASCII-8BIT')
74
+ include_context 'regexp round trip'
75
+ end
76
76
  end
77
77
  end
78
78
  end
@@ -611,6 +611,11 @@ RegexpSpec.expect_mapping(/\w/, :regexp_word_type) do
611
611
  s(:regexp_word_type))
612
612
  end
613
613
 
614
+ RegexpSpec.expect_mapping(/\h/, :regexp_hex_type) do
615
+ s(:regexp_root_expression,
616
+ s(:regexp_hex_type))
617
+ end
618
+
614
619
  RegexpSpec.expect_mapping(/\*/, :regexp_zero_or_more_escape) do
615
620
  s(:regexp_root_expression,
616
621
  s(:regexp_zero_or_more_escape))
@@ -66,7 +66,6 @@ RSpec.describe Mutant::CLI do
66
66
  subject { object.new(arguments) }
67
67
 
68
68
  # Defaults
69
- let(:expected_filter) { Morpher.evaluator(s(:true)) }
70
69
  let(:expected_integration) { Mutant::Integration::Null }
71
70
  let(:expected_reporter) { Mutant::Config::DEFAULT.reporter }
72
71
  let(:expected_matcher_config) { default_matcher_config }
@@ -31,7 +31,6 @@ RSpec.describe Mutant::Context do
31
31
  end
32
32
 
33
33
  let(:object) { described_class.new(scope, source_path) }
34
- let(:scope_name) { instance_double(String) }
35
34
  let(:source_path) { instance_double(Pathname) }
36
35
  let(:scope) { TestApp::Literal }
37
36
 
@@ -60,10 +59,6 @@ RSpec.describe Mutant::Context do
60
59
  Unparser.unparse(subject)
61
60
  end
62
61
 
63
- let(:round_tripped_source) do
64
- Unparser.unparse(parse(expected_source))
65
- end
66
-
67
62
  it 'should create correct source' do
68
63
  expect(generated_source).to eql(expected_source)
69
64
  end
@@ -72,8 +67,6 @@ RSpec.describe Mutant::Context do
72
67
  describe '#unqualified_name' do
73
68
  subject { object.unqualified_name }
74
69
 
75
- let(:path) { instance_double(Pathname) }
76
-
77
70
  context 'with top level constant name' do
78
71
  let(:scope) { TestApp }
79
72
 
@@ -14,14 +14,13 @@ RSpec.describe Mutant::Env do
14
14
  end
15
15
 
16
16
  let(:integration) { instance_double(Mutant::Integration) }
17
- let(:wrapped_node) { instance_double(Parser::AST::Node) }
18
- let(:context) { instance_double(Mutant::Context) }
19
17
  let(:test_a) { instance_double(Mutant::Test) }
20
18
  let(:test_b) { instance_double(Mutant::Test) }
21
19
  let(:tests) { [test_a, test_b] }
22
20
  let(:selector) { instance_double(Mutant::Selector) }
23
21
  let(:integration_class) { Mutant::Integration::Null }
24
22
  let(:isolation) { instance_double(Mutant::Isolation::Fork) }
23
+ let(:mutation_subject) { instance_double(Mutant::Subject) }
25
24
 
26
25
  let(:mutation) do
27
26
  instance_double(
@@ -38,15 +37,6 @@ RSpec.describe Mutant::Env do
38
37
  )
39
38
  end
40
39
 
41
- let(:mutation_subject) do
42
- instance_double(
43
- Mutant::Subject,
44
- context: context,
45
- identification: 'subject',
46
- source: 'original'
47
- )
48
- end
49
-
50
40
  subject { object.kill(mutation) }
51
41
 
52
42
  shared_examples_for 'mutation kill' do
@@ -69,12 +59,7 @@ RSpec.describe Mutant::Env do
69
59
  end
70
60
 
71
61
  context 'when isolation does not raise error' do
72
- let(:test_result) do
73
- instance_double(
74
- Mutant::Result::Test,
75
- passed: false
76
- )
77
- end
62
+ let(:test_result) { instance_double(Mutant::Result::Test) }
78
63
 
79
64
  before do
80
65
  expect(isolation).to receive(:call)
@@ -1,6 +1,4 @@
1
1
  RSpec.describe Mutant::Expression do
2
- let(:object) { described_class }
3
-
4
2
  let(:parser) { Mutant::Config::DEFAULT.expression_parser }
5
3
 
6
4
  describe '#prefix?' do
@@ -1,11 +1,9 @@
1
1
  RSpec.describe Mutant::Matcher::Compiler, '#call' do
2
2
  let(:object) { described_class }
3
- let(:env) { Fixtures::TEST_ENV }
4
3
  let(:matcher_config) { Mutant::Matcher::Config::DEFAULT }
5
4
  let(:expression_a) { parse_expression('Foo*') }
6
5
  let(:expression_b) { parse_expression('Bar*') }
7
6
  let(:matcher_a) { expression_a.matcher }
8
- let(:matcher_b) { expression_b.matcher }
9
7
 
10
8
  let(:expected_matcher) do
11
9
  Mutant::Matcher::Filter.new(
@@ -5,7 +5,6 @@ RSpec.describe Mutant::Matcher::Method::Instance, '#call' do
5
5
  let(:method_name) { :foo }
6
6
  let(:source_path) { MutantSpec::ROOT.join('test_app/lib/test_app.rb') }
7
7
  let(:method) { scope.instance_method(method_name) }
8
- let(:namespace) { self.class }
9
8
  let(:type) { :def }
10
9
  let(:method_arity) { 0 }
11
10
  let(:base) { TestApp::InstanceMethodTests }
@@ -29,7 +28,6 @@ RSpec.describe Mutant::Matcher::Method::Instance, '#call' do
29
28
  context 'when method is defined inside eval' do
30
29
  let(:scope) { base::WithMemoizer }
31
30
  let(:method) { scope.instance_method(:boz) }
32
- let(:method_name) { :boz }
33
31
 
34
32
  let(:expected_warnings) do
35
33
  [
@@ -26,8 +26,7 @@ RSpec.describe Mutant::Matcher::Method::Singleton, '#call' do
26
26
  end
27
27
 
28
28
  context 'when also defined on lvar' do
29
- let(:scope) { base::DefinedOnLvar }
30
- let(:method_line) { 66 }
29
+ let(:scope) { base::DefinedOnLvar }
31
30
  let(:expected_warnings) do
32
31
  [
33
32
  'Can only match :defs on :self or :const got :lvar unable to match'
@@ -76,6 +76,22 @@ RSpec.describe Mutant::Meta::Example::DSL do
76
76
  end
77
77
  end
78
78
 
79
+ context 'using #regexp_mutations' do
80
+ let(:expected) do
81
+ [s(:regexp, s(:regopt)), s(:regexp, s(:str, 'nomatch\\A'), s(:regopt))]
82
+ end
83
+
84
+ let(:node) do
85
+ s(:regexp, s(:str, 'foo'), s(:regopt))
86
+ end
87
+
88
+ expect_example do
89
+ source '/foo/'
90
+
91
+ regexp_mutations
92
+ end
93
+ end
94
+
79
95
  context 'no definition of source' do
80
96
  expect_error('source not defined') do
81
97
  end
@@ -21,9 +21,6 @@ RSpec.describe Mutant::Mutation do
21
21
  )
22
22
  end
23
23
 
24
- let(:test_a) { instance_double(Mutant::Test) }
25
- let(:test_b) { instance_double(Mutant::Test) }
26
-
27
24
  describe '#insert' do
28
25
  subject { object.insert(kernel) }
29
26
 
@@ -1,7 +1,5 @@
1
1
  RSpec.describe Mutant::Mutator do
2
2
  describe '.handle' do
3
- let(:object) { described_class }
4
-
5
3
  subject do
6
4
  Class.new(described_class) do
7
5
  const_set(:REGISTRY, Mutant::Registry.new)
@@ -1,7 +1,6 @@
1
1
  RSpec.describe Mutant::Parallel::Master do
2
2
  let(:message_sequence) { FakeActor::MessageSequence.new }
3
3
  let(:actor_names) { %i[master worker_a worker_b] }
4
- let(:status) { instance_double(Mutant::Result::Status) }
5
4
  let(:sink) { FakeSink.new }
6
5
  let(:processor) { instance_double(Proc) }
7
6
  let(:worker_a) { actor_env.mailbox(:worker_a).sender }
@@ -135,8 +134,6 @@ RSpec.describe Mutant::Parallel::Master do
135
134
  end
136
135
 
137
136
  context 'while jobs are processed' do
138
- let(:expected_results) { [job_result_payload_a] }
139
-
140
137
  let(:sink) do
141
138
  super().instance_eval do
142
139
  def stop?
@@ -39,7 +39,6 @@ RSpec.describe Mutant::Parallel::Worker do
39
39
  end
40
40
 
41
41
  let(:index) { instance_double(Fixnum) }
42
- let(:test_result) { instance_double(Mutant::Result::Test) }
43
42
  let(:job_result) { Mutant::Parallel::JobResult.new(job: job, payload: result_payload) }
44
43
  let(:job) { Mutant::Parallel::Job.new(index: index, payload: payload) }
45
44
 
@@ -1,9 +1,7 @@
1
1
  RSpec.describe Mutant::Registry do
2
- let(:lookup) { object.lookup(type) }
3
- let(:object) { described_class.new }
4
- let(:mutator) { class_double(Mutant::Mutator) }
5
- let(:node) { s(:true) }
6
- let(:expected_arguments) { [node, nil] }
2
+ let(:lookup) { object.lookup(type) }
3
+ let(:object) { described_class.new }
4
+ let(:mutator) { class_double(Mutant::Mutator) }
7
5
 
8
6
  def register_mutator
9
7
  object.register(type, mutator)
@@ -3,7 +3,7 @@ RSpec.describe Mutant::Reporter::CLI::Tput do
3
3
  subject { described_class.detect }
4
4
 
5
5
  def expect_command(command, stdout, success)
6
- allow(Open3).to receive(:capture3).with(command).ordered.and_return(
6
+ allow(Open3).to receive(:capture3).with(command).and_return(
7
7
  [
8
8
  stdout,
9
9
  instance_double(IO),
@@ -10,16 +10,11 @@ RSpec.describe Mutant::Result::Env do
10
10
  let(:env) do
11
11
  instance_double(
12
12
  Mutant::Env,
13
- config: config,
14
13
  subjects: [instance_double(Mutant::Subject)],
15
14
  mutations: [instance_double(Mutant::Mutation)]
16
15
  )
17
16
  end
18
17
 
19
- let(:config) do
20
- instance_double(Mutant::Config)
21
- end
22
-
23
18
  let(:subject_result) do
24
19
  instance_double(
25
20
  Mutant::Result::Subject,
@@ -6,13 +6,7 @@ RSpec.describe Mutant::Result::Mutation do
6
6
  )
7
7
  end
8
8
 
9
- let(:mutation) do
10
- instance_double(
11
- Mutant::Mutation,
12
- frozen?: true,
13
- class: class_double(Mutant::Mutation)
14
- )
15
- end
9
+ let(:mutation) { instance_double(Mutant::Mutation) }
16
10
 
17
11
  let(:test_result) do
18
12
  instance_double(
@@ -21,12 +15,6 @@ RSpec.describe Mutant::Result::Mutation do
21
15
  )
22
16
  end
23
17
 
24
- let(:mutation_subject) do
25
- instance_double(
26
- Mutant::Subject
27
- )
28
- end
29
-
30
18
  describe '#runtime' do
31
19
  subject { object.runtime }
32
20
 
@@ -1,6 +1,5 @@
1
1
  RSpec.describe Mutant::Runner do
2
2
  describe '.call' do
3
- let(:integration) { instance_double(Mutant::Integration) }
4
3
  let(:reporter) { instance_double(Mutant::Reporter, delay: delay) }
5
4
  let(:driver) { instance_double(Mutant::Parallel::Driver) }
6
5
  let(:delay) { instance_double(Float) }
@@ -21,10 +20,9 @@ RSpec.describe Mutant::Runner do
21
20
  let(:config) do
22
21
  instance_double(
23
22
  Mutant::Config,
24
- integration: integration,
25
- jobs: 1,
26
- kernel: kernel,
27
- reporter: reporter
23
+ jobs: 1,
24
+ kernel: kernel,
25
+ reporter: reporter
28
26
  )
29
27
  end
30
28
 
@@ -50,17 +48,6 @@ RSpec.describe Mutant::Runner do
50
48
 
51
49
  subject { described_class.call(env) }
52
50
 
53
- context 'when runner finishes immediately' do
54
- let(:status) { instance_double(Mutant::Parallel::Status, done: true, payload: env_result) }
55
-
56
- before do
57
- expect(driver).to receive(:status).and_return(status)
58
- expect(reporter).to receive(:progress).with(status).ordered
59
- expect(driver).to receive(:stop).ordered
60
- expect(reporter).to receive(:report).with(env_result).ordered
61
- end
62
- end
63
-
64
51
  context 'when report iterations are done' do
65
52
  let(:status_a) { instance_double(Mutant::Parallel::Status, done: false) }
66
53
  let(:status_b) { instance_double(Mutant::Parallel::Status, done: true, payload: env_result) }
@@ -19,7 +19,6 @@ RSpec.describe Mutant::Selector::Expression do
19
19
  let(:mutation_subject) { subject_class.new(context, node) }
20
20
  let(:context) { instance_double(Mutant::Context) }
21
21
  let(:node) { instance_double(Parser::AST::Node) }
22
- let(:config) { Mutant::Config::DEFAULT.with(integration: integration) }
23
22
  let(:integration) { instance_double(Mutant::Integration, all_tests: all_tests) }
24
23
  let(:test_a) { instance_double(Mutant::Test, expression: parse_expression('SubjectA')) }
25
24
  let(:test_b) { instance_double(Mutant::Test, expression: parse_expression('SubjectB')) }
@@ -23,15 +23,10 @@ RSpec.describe Mutant::Subject do
23
23
  RUBY
24
24
  end
25
25
 
26
- let(:expression) do
27
- instance_double(Mutant::Expression, line: 'source_line')
28
- end
29
-
30
26
  let(:context) do
31
27
  double(
32
28
  'Context',
33
- source_path: 'source_path',
34
- source_line: 'source_line'
29
+ source_path: 'source_path'
35
30
  )
36
31
  end
37
32
 
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.8.11
4
+ version: 0.8.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Markus Schirp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-01 00:00:00.000000000 Z
11
+ date: 2016-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.3.0
19
+ version: 2.3.1
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 2.3.0.2
22
+ version: 2.3.1.4
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: 2.3.0
29
+ version: 2.3.1
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 2.3.0.2
32
+ version: 2.3.1.4
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: ast
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -232,14 +232,14 @@ dependencies:
232
232
  requirements:
233
233
  - - "~>"
234
234
  - !ruby/object:Gem::Version
235
- version: 0.1.4
235
+ version: 0.1.12
236
236
  type: :development
237
237
  prerelease: false
238
238
  version_requirements: !ruby/object:Gem::Requirement
239
239
  requirements:
240
240
  - - "~>"
241
241
  - !ruby/object:Gem::Version
242
- version: 0.1.4
242
+ version: 0.1.12
243
243
  - !ruby/object:Gem::Dependency
244
244
  name: bundler
245
245
  requirement: !ruby/object:Gem::Requirement
@@ -277,6 +277,7 @@ extensions: []
277
277
  extra_rdoc_files:
278
278
  - LICENSE
279
279
  files:
280
+ - ".gitattributes"
280
281
  - ".gitignore"
281
282
  - ".rspec"
282
283
  - ".rubocop.yml"
@@ -403,6 +404,12 @@ files:
403
404
  - lib/mutant/mutator/node/op_asgn.rb
404
405
  - lib/mutant/mutator/node/or_asgn.rb
405
406
  - lib/mutant/mutator/node/regexp.rb
407
+ - lib/mutant/mutator/node/regexp/alternation_meta.rb
408
+ - lib/mutant/mutator/node/regexp/capture_group.rb
409
+ - lib/mutant/mutator/node/regexp/character_type.rb
410
+ - lib/mutant/mutator/node/regexp/end_of_line_anchor.rb
411
+ - lib/mutant/mutator/node/regexp/end_of_string_or_before_end_of_line_anchor.rb
412
+ - lib/mutant/mutator/node/regexp/greedy_zero_or_more.rb
406
413
  - lib/mutant/mutator/node/regopt.rb
407
414
  - lib/mutant/mutator/node/resbody.rb
408
415
  - lib/mutant/mutator/node/rescue.rb
@@ -507,8 +514,15 @@ files:
507
514
  - meta/range.rb
508
515
  - meta/redo.rb
509
516
  - meta/regexp.rb
517
+ - meta/regexp/character_types.rb
518
+ - meta/regexp/regexp_alternation_meta.rb
510
519
  - meta/regexp/regexp_bol_anchor.rb
511
520
  - meta/regexp/regexp_bos_anchor.rb
521
+ - meta/regexp/regexp_capture_group.rb
522
+ - meta/regexp/regexp_eol_anchor.rb
523
+ - meta/regexp/regexp_eos_anchor.rb
524
+ - meta/regexp/regexp_eos_ob_eol_anchor.rb
525
+ - meta/regexp/regexp_greedy_zero_or_more.rb
512
526
  - meta/regexp/regexp_root_expression.rb
513
527
  - meta/regopt.rb
514
528
  - meta/rescue.rb
@@ -554,6 +568,7 @@ files:
554
568
  - spec/unit/mutant/actor/receiver_spec.rb
555
569
  - spec/unit/mutant/actor/sender_spec.rb
556
570
  - spec/unit/mutant/ast/meta/optarg_spec.rb
571
+ - spec/unit/mutant/ast/meta/send/proc_predicate_spec.rb
557
572
  - spec/unit/mutant/ast/meta/send/receiver_possible_top_level_const_predicate_spec.rb
558
573
  - spec/unit/mutant/ast/meta/send_spec.rb
559
574
  - spec/unit/mutant/ast/named_children_spec.rb
@@ -684,6 +699,7 @@ test_files:
684
699
  - spec/unit/mutant/actor/receiver_spec.rb
685
700
  - spec/unit/mutant/actor/sender_spec.rb
686
701
  - spec/unit/mutant/ast/meta/optarg_spec.rb
702
+ - spec/unit/mutant/ast/meta/send/proc_predicate_spec.rb
687
703
  - spec/unit/mutant/ast/meta/send/receiver_possible_top_level_const_predicate_spec.rb
688
704
  - spec/unit/mutant/ast/meta/send_spec.rb
689
705
  - spec/unit/mutant/ast/named_children_spec.rb
@@ -770,4 +786,3 @@ test_files:
770
786
  - spec/unit/mutant/warning_filter_spec.rb
771
787
  - spec/unit/mutant/zombifier_spec.rb
772
788
  - spec/unit/mutant_spec.rb
773
- has_rdoc: