mutant 0.8.11 → 0.8.12

Sign up to get free protection for your applications and to get access to all the features.
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: