mutant 0.8.16 → 0.8.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (367) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +1 -1
  3. data/Changelog.md +6 -0
  4. data/Gemfile +3 -1
  5. data/Gemfile.lock +66 -62
  6. data/Rakefile +2 -0
  7. data/bin/mutant +1 -0
  8. data/config/flay.yml +1 -1
  9. data/config/reek.yml +136 -136
  10. data/config/rubocop.yml +23 -1
  11. data/lib/mutant.rb +2 -0
  12. data/lib/mutant/actor.rb +2 -0
  13. data/lib/mutant/actor/env.rb +2 -0
  14. data/lib/mutant/actor/mailbox.rb +2 -0
  15. data/lib/mutant/actor/receiver.rb +2 -0
  16. data/lib/mutant/actor/sender.rb +2 -0
  17. data/lib/mutant/ast.rb +2 -0
  18. data/lib/mutant/ast/meta.rb +2 -0
  19. data/lib/mutant/ast/meta/const.rb +2 -0
  20. data/lib/mutant/ast/meta/optarg.rb +2 -0
  21. data/lib/mutant/ast/meta/resbody.rb +2 -0
  22. data/lib/mutant/ast/meta/restarg.rb +2 -0
  23. data/lib/mutant/ast/meta/send.rb +2 -0
  24. data/lib/mutant/ast/meta/symbol.rb +2 -0
  25. data/lib/mutant/ast/named_children.rb +2 -0
  26. data/lib/mutant/ast/node_predicates.rb +2 -0
  27. data/lib/mutant/ast/nodes.rb +2 -0
  28. data/lib/mutant/ast/regexp.rb +2 -0
  29. data/lib/mutant/ast/regexp/transformer.rb +2 -0
  30. data/lib/mutant/ast/regexp/transformer/alternative.rb +2 -0
  31. data/lib/mutant/ast/regexp/transformer/character_set.rb +2 -0
  32. data/lib/mutant/ast/regexp/transformer/direct.rb +2 -0
  33. data/lib/mutant/ast/regexp/transformer/options_group.rb +2 -0
  34. data/lib/mutant/ast/regexp/transformer/quantifier.rb +3 -1
  35. data/lib/mutant/ast/regexp/transformer/recursive.rb +2 -0
  36. data/lib/mutant/ast/regexp/transformer/root.rb +2 -0
  37. data/lib/mutant/ast/regexp/transformer/text.rb +2 -0
  38. data/lib/mutant/ast/sexp.rb +2 -0
  39. data/lib/mutant/ast/types.rb +2 -0
  40. data/lib/mutant/cli.rb +2 -0
  41. data/lib/mutant/color.rb +3 -1
  42. data/lib/mutant/config.rb +2 -0
  43. data/lib/mutant/context.rb +2 -0
  44. data/lib/mutant/diff.rb +4 -2
  45. data/lib/mutant/env.rb +2 -0
  46. data/lib/mutant/env/bootstrap.rb +2 -0
  47. data/lib/mutant/expression.rb +2 -0
  48. data/lib/mutant/expression/method.rb +2 -0
  49. data/lib/mutant/expression/methods.rb +2 -0
  50. data/lib/mutant/expression/namespace.rb +2 -0
  51. data/lib/mutant/expression/parser.rb +2 -0
  52. data/lib/mutant/integration.rb +2 -0
  53. data/lib/mutant/isolation.rb +2 -0
  54. data/lib/mutant/isolation/fork.rb +2 -0
  55. data/lib/mutant/isolation/none.rb +2 -0
  56. data/lib/mutant/loader.rb +2 -0
  57. data/lib/mutant/matcher.rb +2 -0
  58. data/lib/mutant/matcher/chain.rb +2 -0
  59. data/lib/mutant/matcher/compiler.rb +2 -0
  60. data/lib/mutant/matcher/config.rb +2 -0
  61. data/lib/mutant/matcher/filter.rb +2 -0
  62. data/lib/mutant/matcher/method.rb +2 -0
  63. data/lib/mutant/matcher/method/instance.rb +2 -0
  64. data/lib/mutant/matcher/method/singleton.rb +2 -0
  65. data/lib/mutant/matcher/methods.rb +2 -0
  66. data/lib/mutant/matcher/namespace.rb +2 -0
  67. data/lib/mutant/matcher/null.rb +2 -0
  68. data/lib/mutant/matcher/scope.rb +2 -0
  69. data/lib/mutant/matcher/static.rb +2 -0
  70. data/lib/mutant/meta.rb +4 -0
  71. data/lib/mutant/meta/example.rb +2 -0
  72. data/lib/mutant/meta/example/dsl.rb +2 -0
  73. data/lib/mutant/meta/example/verification.rb +2 -0
  74. data/lib/mutant/mutation.rb +2 -0
  75. data/lib/mutant/mutator.rb +2 -0
  76. data/lib/mutant/mutator/node.rb +4 -2
  77. data/lib/mutant/mutator/node/and_asgn.rb +2 -0
  78. data/lib/mutant/mutator/node/argument.rb +2 -0
  79. data/lib/mutant/mutator/node/arguments.rb +2 -0
  80. data/lib/mutant/mutator/node/begin.rb +2 -0
  81. data/lib/mutant/mutator/node/binary.rb +2 -0
  82. data/lib/mutant/mutator/node/block.rb +2 -0
  83. data/lib/mutant/mutator/node/break.rb +2 -0
  84. data/lib/mutant/mutator/node/case.rb +2 -0
  85. data/lib/mutant/mutator/node/class.rb +2 -0
  86. data/lib/mutant/mutator/node/conditional_loop.rb +2 -0
  87. data/lib/mutant/mutator/node/const.rb +2 -0
  88. data/lib/mutant/mutator/node/define.rb +2 -0
  89. data/lib/mutant/mutator/node/defined.rb +2 -0
  90. data/lib/mutant/mutator/node/dstr.rb +2 -0
  91. data/lib/mutant/mutator/node/dsym.rb +2 -0
  92. data/lib/mutant/mutator/node/generic.rb +2 -0
  93. data/lib/mutant/mutator/node/if.rb +2 -0
  94. data/lib/mutant/mutator/node/kwbegin.rb +2 -0
  95. data/lib/mutant/mutator/node/literal.rb +2 -0
  96. data/lib/mutant/mutator/node/literal/array.rb +2 -0
  97. data/lib/mutant/mutator/node/literal/boolean.rb +2 -0
  98. data/lib/mutant/mutator/node/literal/float.rb +2 -0
  99. data/lib/mutant/mutator/node/literal/hash.rb +2 -0
  100. data/lib/mutant/mutator/node/literal/integer.rb +2 -0
  101. data/lib/mutant/mutator/node/literal/nil.rb +2 -0
  102. data/lib/mutant/mutator/node/literal/range.rb +2 -0
  103. data/lib/mutant/mutator/node/literal/regex.rb +2 -0
  104. data/lib/mutant/mutator/node/literal/string.rb +2 -0
  105. data/lib/mutant/mutator/node/literal/symbol.rb +2 -0
  106. data/lib/mutant/mutator/node/masgn.rb +2 -0
  107. data/lib/mutant/mutator/node/match_current_line.rb +2 -0
  108. data/lib/mutant/mutator/node/mlhs.rb +2 -0
  109. data/lib/mutant/mutator/node/named_value/access.rb +2 -0
  110. data/lib/mutant/mutator/node/named_value/constant_assignment.rb +2 -0
  111. data/lib/mutant/mutator/node/named_value/variable_assignment.rb +2 -0
  112. data/lib/mutant/mutator/node/next.rb +2 -0
  113. data/lib/mutant/mutator/node/noop.rb +3 -1
  114. data/lib/mutant/mutator/node/nthref.rb +2 -0
  115. data/lib/mutant/mutator/node/op_asgn.rb +2 -0
  116. data/lib/mutant/mutator/node/or_asgn.rb +2 -0
  117. data/lib/mutant/mutator/node/regexp.rb +2 -0
  118. data/lib/mutant/mutator/node/regexp/alternation_meta.rb +2 -0
  119. data/lib/mutant/mutator/node/regexp/capture_group.rb +2 -0
  120. data/lib/mutant/mutator/node/regexp/character_type.rb +2 -0
  121. data/lib/mutant/mutator/node/regexp/end_of_line_anchor.rb +2 -0
  122. data/lib/mutant/mutator/node/regexp/end_of_string_or_before_end_of_line_anchor.rb +2 -0
  123. data/lib/mutant/mutator/node/regexp/greedy_zero_or_more.rb +2 -0
  124. data/lib/mutant/mutator/node/regopt.rb +2 -0
  125. data/lib/mutant/mutator/node/resbody.rb +2 -0
  126. data/lib/mutant/mutator/node/rescue.rb +2 -0
  127. data/lib/mutant/mutator/node/return.rb +2 -0
  128. data/lib/mutant/mutator/node/send.rb +2 -0
  129. data/lib/mutant/mutator/node/send/attribute_assignment.rb +2 -0
  130. data/lib/mutant/mutator/node/send/binary.rb +2 -0
  131. data/lib/mutant/mutator/node/send/conditional.rb +2 -0
  132. data/lib/mutant/mutator/node/send/index.rb +2 -0
  133. data/lib/mutant/mutator/node/splat.rb +2 -0
  134. data/lib/mutant/mutator/node/super.rb +2 -0
  135. data/lib/mutant/mutator/node/when.rb +2 -0
  136. data/lib/mutant/mutator/node/yield.rb +2 -0
  137. data/lib/mutant/mutator/node/zsuper.rb +2 -0
  138. data/lib/mutant/mutator/util.rb +2 -0
  139. data/lib/mutant/mutator/util/array.rb +2 -0
  140. data/lib/mutant/mutator/util/symbol.rb +2 -0
  141. data/lib/mutant/parallel.rb +2 -0
  142. data/lib/mutant/parallel/master.rb +2 -0
  143. data/lib/mutant/parallel/source.rb +2 -0
  144. data/lib/mutant/parallel/worker.rb +2 -0
  145. data/lib/mutant/parser.rb +2 -0
  146. data/lib/mutant/registry.rb +2 -0
  147. data/lib/mutant/reporter.rb +2 -0
  148. data/lib/mutant/reporter/cli.rb +2 -0
  149. data/lib/mutant/reporter/cli/format.rb +2 -0
  150. data/lib/mutant/reporter/cli/printer.rb +2 -0
  151. data/lib/mutant/reporter/cli/printer/config.rb +2 -0
  152. data/lib/mutant/reporter/cli/printer/env_progress.rb +2 -1
  153. data/lib/mutant/reporter/cli/printer/env_result.rb +2 -0
  154. data/lib/mutant/reporter/cli/printer/mutation_progress_result.rb +2 -0
  155. data/lib/mutant/reporter/cli/printer/mutation_result.rb +2 -0
  156. data/lib/mutant/reporter/cli/printer/status.rb +2 -0
  157. data/lib/mutant/reporter/cli/printer/status_progressive.rb +2 -0
  158. data/lib/mutant/reporter/cli/printer/subject_progress.rb +2 -0
  159. data/lib/mutant/reporter/cli/printer/subject_result.rb +2 -0
  160. data/lib/mutant/reporter/cli/printer/test_result.rb +2 -0
  161. data/lib/mutant/reporter/cli/tput.rb +2 -0
  162. data/lib/mutant/reporter/null.rb +2 -0
  163. data/lib/mutant/reporter/sequence.rb +2 -0
  164. data/lib/mutant/repository.rb +2 -0
  165. data/lib/mutant/require_highjack.rb +2 -0
  166. data/lib/mutant/result.rb +2 -0
  167. data/lib/mutant/runner.rb +2 -0
  168. data/lib/mutant/runner/sink.rb +2 -0
  169. data/lib/mutant/scope.rb +2 -0
  170. data/lib/mutant/selector.rb +2 -0
  171. data/lib/mutant/selector/expression.rb +2 -0
  172. data/lib/mutant/subject.rb +2 -0
  173. data/lib/mutant/subject/method.rb +2 -0
  174. data/lib/mutant/subject/method/instance.rb +2 -0
  175. data/lib/mutant/subject/method/singleton.rb +2 -0
  176. data/lib/mutant/test.rb +2 -0
  177. data/lib/mutant/util.rb +2 -0
  178. data/lib/mutant/version.rb +3 -1
  179. data/lib/mutant/warning_filter.rb +2 -0
  180. data/lib/mutant/zombifier.rb +2 -0
  181. data/meta/and.rb +2 -0
  182. data/meta/and_asgn.rb +2 -0
  183. data/meta/array.rb +2 -0
  184. data/meta/begin.rb +2 -0
  185. data/meta/block.rb +2 -0
  186. data/meta/block_pass.rb +2 -0
  187. data/meta/blockarg.rb +2 -0
  188. data/meta/break.rb +2 -0
  189. data/meta/case.rb +2 -0
  190. data/meta/casgn.rb +2 -0
  191. data/meta/cbase.rb +2 -0
  192. data/meta/class.rb +2 -0
  193. data/meta/const.rb +2 -0
  194. data/meta/csend.rb +2 -0
  195. data/meta/cvar.rb +2 -0
  196. data/meta/cvasgn.rb +2 -0
  197. data/meta/date.rb +2 -0
  198. data/meta/def.rb +2 -0
  199. data/meta/defined.rb +2 -0
  200. data/meta/dstr.rb +2 -0
  201. data/meta/dsym.rb +2 -0
  202. data/meta/ensure.rb +2 -0
  203. data/meta/false.rb +2 -0
  204. data/meta/float.rb +2 -0
  205. data/meta/gvar.rb +2 -0
  206. data/meta/gvasgn.rb +2 -0
  207. data/meta/hash.rb +2 -0
  208. data/meta/if.rb +2 -0
  209. data/meta/int.rb +2 -0
  210. data/meta/ivar.rb +2 -0
  211. data/meta/ivasgn.rb +2 -0
  212. data/meta/kwarg.rb +2 -0
  213. data/meta/kwbegin.rb +2 -0
  214. data/meta/kwoptarg.rb +2 -0
  215. data/meta/lvar.rb +2 -0
  216. data/meta/lvasgn.rb +2 -0
  217. data/meta/masgn.rb +2 -0
  218. data/meta/match_current_line.rb +2 -0
  219. data/meta/next.rb +2 -0
  220. data/meta/nil.rb +2 -0
  221. data/meta/nthref.rb +2 -0
  222. data/meta/op_assgn.rb +2 -0
  223. data/meta/or.rb +2 -0
  224. data/meta/or_asgn.rb +2 -0
  225. data/meta/range.rb +2 -0
  226. data/meta/redo.rb +2 -0
  227. data/meta/regexp.rb +2 -0
  228. data/meta/regexp/character_types.rb +2 -0
  229. data/meta/regexp/regexp_alternation_meta.rb +2 -0
  230. data/meta/regexp/regexp_bol_anchor.rb +2 -0
  231. data/meta/regexp/regexp_bos_anchor.rb +2 -0
  232. data/meta/regexp/regexp_capture_group.rb +2 -0
  233. data/meta/regexp/regexp_eol_anchor.rb +2 -0
  234. data/meta/regexp/regexp_eos_anchor.rb +2 -0
  235. data/meta/regexp/regexp_eos_ob_eol_anchor.rb +2 -0
  236. data/meta/regexp/regexp_greedy_zero_or_more.rb +2 -0
  237. data/meta/regexp/regexp_root_expression.rb +2 -0
  238. data/meta/regopt.rb +2 -0
  239. data/meta/rescue.rb +2 -0
  240. data/meta/restarg.rb +2 -0
  241. data/meta/return.rb +2 -0
  242. data/meta/self.rb +2 -0
  243. data/meta/send.rb +2 -0
  244. data/meta/str.rb +2 -0
  245. data/meta/super.rb +2 -0
  246. data/meta/sym.rb +2 -0
  247. data/meta/true.rb +2 -0
  248. data/meta/until.rb +2 -0
  249. data/meta/while.rb +2 -0
  250. data/meta/yield.rb +2 -0
  251. data/mutant-rspec.gemspec +3 -1
  252. data/mutant.gemspec +15 -13
  253. data/spec/integration/mutant/corpus_spec.rb +2 -0
  254. data/spec/integration/mutant/isolation/fork_spec.rb +3 -0
  255. data/spec/integration/mutant/null_spec.rb +2 -0
  256. data/spec/integration/mutant/rspec_spec.rb +2 -0
  257. data/spec/integration/mutant/test_mutator_handles_types_spec.rb +2 -0
  258. data/spec/shared/framework_integration_behavior.rb +2 -0
  259. data/spec/shared/method_matcher_behavior.rb +2 -0
  260. data/spec/spec_helper.rb +2 -1
  261. data/spec/support/corpus.rb +2 -0
  262. data/spec/support/fake_actor.rb +3 -1
  263. data/spec/support/file_system.rb +2 -0
  264. data/spec/support/ice_nine_config.rb +2 -0
  265. data/spec/support/rb_bug.rb +2 -0
  266. data/spec/support/ruby_vm.rb +3 -0
  267. data/spec/support/shared_context.rb +3 -1
  268. data/spec/support/test_app.rb +3 -1
  269. data/spec/support/warning.rb +2 -0
  270. data/spec/support/warnings.yml +1 -1
  271. data/spec/support/xspec.rb +4 -2
  272. data/spec/unit/mutant/actor/binding_spec.rb +2 -0
  273. data/spec/unit/mutant/actor/env_spec.rb +2 -0
  274. data/spec/unit/mutant/actor/mailbox_spec.rb +2 -0
  275. data/spec/unit/mutant/actor/message_spec.rb +2 -0
  276. data/spec/unit/mutant/actor/receiver_spec.rb +2 -0
  277. data/spec/unit/mutant/actor/sender_spec.rb +2 -0
  278. data/spec/unit/mutant/ast/meta/optarg_spec.rb +2 -0
  279. data/spec/unit/mutant/ast/meta/send/proc_predicate_spec.rb +2 -0
  280. data/spec/unit/mutant/ast/meta/send/receiver_possible_top_level_const_predicate_spec.rb +2 -0
  281. data/spec/unit/mutant/ast/meta/send_spec.rb +2 -0
  282. data/spec/unit/mutant/ast/named_children_spec.rb +2 -0
  283. data/spec/unit/mutant/ast/regexp/parse_spec.rb +2 -0
  284. data/spec/unit/mutant/ast/regexp/supported_predicate_spec.rb +2 -0
  285. data/spec/unit/mutant/ast/regexp/transformer/lookup_table/table_spec.rb +2 -0
  286. data/spec/unit/mutant/ast/regexp/transformer/lookup_table_spec.rb +2 -0
  287. data/spec/unit/mutant/ast/regexp/transformer_spec.rb +2 -0
  288. data/spec/unit/mutant/ast/regexp_spec.rb +2 -0
  289. data/spec/unit/mutant/ast/sexp_spec.rb +2 -0
  290. data/spec/unit/mutant/ast_spec.rb +2 -0
  291. data/spec/unit/mutant/cli_spec.rb +17 -15
  292. data/spec/unit/mutant/context_spec.rb +2 -0
  293. data/spec/unit/mutant/diff_spec.rb +8 -6
  294. data/spec/unit/mutant/env/bootstrap_spec.rb +2 -0
  295. data/spec/unit/mutant/env_spec.rb +2 -0
  296. data/spec/unit/mutant/expression/method_spec.rb +2 -0
  297. data/spec/unit/mutant/expression/methods_spec.rb +2 -0
  298. data/spec/unit/mutant/expression/namespace/exact_spec.rb +2 -0
  299. data/spec/unit/mutant/expression/namespace/recursive_spec.rb +2 -0
  300. data/spec/unit/mutant/expression/parser_spec.rb +2 -0
  301. data/spec/unit/mutant/expression_spec.rb +2 -0
  302. data/spec/unit/mutant/integration/rspec_spec.rb +2 -0
  303. data/spec/unit/mutant/integration_spec.rb +2 -0
  304. data/spec/unit/mutant/isolation/fork_spec.rb +2 -0
  305. data/spec/unit/mutant/isolation/none_spec.rb +2 -0
  306. data/spec/unit/mutant/loader_spec.rb +2 -0
  307. data/spec/unit/mutant/matcher/chain_spec.rb +2 -0
  308. data/spec/unit/mutant/matcher/compiler/subject_prefix_spec.rb +2 -0
  309. data/spec/unit/mutant/matcher/compiler_spec.rb +2 -0
  310. data/spec/unit/mutant/matcher/config_spec.rb +2 -0
  311. data/spec/unit/mutant/matcher/filter_spec.rb +2 -0
  312. data/spec/unit/mutant/matcher/method/instance_spec.rb +2 -0
  313. data/spec/unit/mutant/matcher/method/singleton_spec.rb +2 -0
  314. data/spec/unit/mutant/matcher/methods/instance_spec.rb +2 -0
  315. data/spec/unit/mutant/matcher/methods/singleton_spec.rb +2 -0
  316. data/spec/unit/mutant/matcher/namespace_spec.rb +2 -0
  317. data/spec/unit/mutant/matcher/null_spec.rb +2 -0
  318. data/spec/unit/mutant/matcher/scope_spec.rb +2 -0
  319. data/spec/unit/mutant/matcher/static_spec.rb +2 -0
  320. data/spec/unit/mutant/meta/example/dsl_spec.rb +2 -0
  321. data/spec/unit/mutant/meta/example/verification_spec.rb +5 -3
  322. data/spec/unit/mutant/meta/example_spec.rb +2 -0
  323. data/spec/unit/mutant/mutation_spec.rb +2 -0
  324. data/spec/unit/mutant/mutator/node_spec.rb +2 -0
  325. data/spec/unit/mutant/mutator_spec.rb +2 -0
  326. data/spec/unit/mutant/parallel/driver_spec.rb +2 -0
  327. data/spec/unit/mutant/parallel/master_spec.rb +2 -0
  328. data/spec/unit/mutant/parallel/source/array_spec.rb +2 -0
  329. data/spec/unit/mutant/parallel/worker_spec.rb +2 -0
  330. data/spec/unit/mutant/parallel_spec.rb +2 -0
  331. data/spec/unit/mutant/parser_spec.rb +2 -0
  332. data/spec/unit/mutant/registry_spec.rb +2 -0
  333. data/spec/unit/mutant/reporter/cli/printer/config_spec.rb +4 -2
  334. data/spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb +5 -3
  335. data/spec/unit/mutant/reporter/cli/printer/env_result_spec.rb +3 -1
  336. data/spec/unit/mutant/reporter/cli/printer/mutation_progress_result_spec.rb +2 -0
  337. data/spec/unit/mutant/reporter/cli/printer/mutation_result_spec.rb +6 -4
  338. data/spec/unit/mutant/reporter/cli/printer/status_progressive_spec.rb +6 -4
  339. data/spec/unit/mutant/reporter/cli/printer/status_spec.rb +6 -4
  340. data/spec/unit/mutant/reporter/cli/printer/subject_progress_spec.rb +5 -3
  341. data/spec/unit/mutant/reporter/cli/printer/subject_result_spec.rb +5 -3
  342. data/spec/unit/mutant/reporter/cli/printer/test_result_spec.rb +3 -1
  343. data/spec/unit/mutant/reporter/cli/printer_spec.rb +6 -4
  344. data/spec/unit/mutant/reporter/cli/tput_spec.rb +2 -0
  345. data/spec/unit/mutant/reporter/cli_spec.rb +7 -5
  346. data/spec/unit/mutant/reporter/null_spec.rb +2 -0
  347. data/spec/unit/mutant/reporter/sequence_spec.rb +2 -0
  348. data/spec/unit/mutant/repository/diff_spec.rb +3 -1
  349. data/spec/unit/mutant/repository/subject_filter_spec.rb +2 -0
  350. data/spec/unit/mutant/require_highjack_spec.rb +2 -0
  351. data/spec/unit/mutant/result/class_methods_spec.rb +2 -0
  352. data/spec/unit/mutant/result/env_spec.rb +2 -0
  353. data/spec/unit/mutant/result/mutation_spec.rb +2 -0
  354. data/spec/unit/mutant/result/subject_spec.rb +2 -0
  355. data/spec/unit/mutant/result_spec.rb +2 -0
  356. data/spec/unit/mutant/runner/sink_spec.rb +2 -0
  357. data/spec/unit/mutant/runner_spec.rb +2 -0
  358. data/spec/unit/mutant/selector/expression_spec.rb +2 -0
  359. data/spec/unit/mutant/subject/method/instance_spec.rb +2 -0
  360. data/spec/unit/mutant/subject/method/singleton_spec.rb +2 -0
  361. data/spec/unit/mutant/subject_spec.rb +2 -0
  362. data/spec/unit/mutant/util/one_spec.rb +2 -0
  363. data/spec/unit/mutant/warning_filter_spec.rb +3 -1
  364. data/spec/unit/mutant/zombifier_spec.rb +2 -0
  365. data/spec/unit/mutant_spec.rb +2 -0
  366. metadata +57 -64
  367. data/spec/support/compress_helper.rb +0 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: '019b06338f546eb1dd83644fb0a511e75dcd15cafcd390b62dae145f5afbf9f3'
4
- data.tar.gz: 10be564bc3db3283dfd6d79b8967950194e50bfe0b68b4bd341637e12c684dc5
2
+ SHA1:
3
+ metadata.gz: 9a7ef519893a4c9b48a337848f38e78d7df2977b
4
+ data.tar.gz: 74deda822872d33f3a21104d29792958ede1adea
5
5
  SHA512:
6
- metadata.gz: 8f57ffbae917bcddbfb32851088f4833f4cdb344728cf02f13c517a63dfb3ff6838b27cd871ae41d5ba74c621e714c1aa2dac02020cb6c13eaa6758819a94f71
7
- data.tar.gz: 0d77b63cf623ebcf6d70ae03f77bd0869a647657b640ec8ed11dc81118a8d9ae45621efb6cf3fe929467daaca98fbe1c0eba7e6c16d94c001dceee156f4cd04a
6
+ metadata.gz: 04b9b5fd2125a101f040726c32ead69978d40f5e537b1f34692718e1d7d2d297e10c915b4bdb0265c27306e02711543c7442fb785a3268d9af2058fd0627c641
7
+ data.tar.gz: 6023f61697e4b92d5761f412cd4a3f391295fb22269e90a42666a8e93612c4a60f59b951e5616249737e6aa44717ba53e5c42e55f3c0fe8866c4f73cdee2b8cd
data/.rubocop.yml CHANGED
@@ -4,4 +4,4 @@ AllCops:
4
4
  - 'test_app/**/*'
5
5
  - 'tmp/**/*'
6
6
  - 'vendor/**/*'
7
- TargetRubyVersion: 2.2
7
+ TargetRubyVersion: 2.3
data/Changelog.md CHANGED
@@ -1,3 +1,9 @@
1
+ # v0.8.17 2018-09-12
2
+
3
+ * Drop support for Ruby < 2.3
4
+ * Use frozen string literals globally
5
+ * Update to parser ~> 2.5
6
+
1
7
  # v0.8.16 2018-08-03
2
8
 
3
9
  * Support for rspec-3.x
data/Gemfile CHANGED
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  gemspec name: 'mutant'
4
6
 
5
- eval_gemfile File.expand_path('../Gemfile.shared', __FILE__)
7
+ eval_gemfile File.expand_path('Gemfile.shared', __dir__)
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mutant (0.8.14)
4
+ mutant (0.8.16)
5
5
  abstract_type (~> 0.0.7)
6
6
  adamantium (~> 0.2.0)
7
7
  anima (~> 0.3.0)
@@ -13,13 +13,13 @@ PATH
13
13
  memoizable (~> 0.4.2)
14
14
  morpher (~> 0.2.6)
15
15
  parallel (~> 1.3)
16
- parser (>= 2.3.1.4, < 2.5)
16
+ parser (~> 2.5.1)
17
17
  procto (~> 0.0.2)
18
18
  regexp_parser (~> 0.4.9)
19
19
  unparser (~> 0.2.5)
20
- mutant-rspec (0.8.14)
21
- mutant (~> 0.8.14)
22
- rspec-core (>= 3.4.0, < 3.8.0)
20
+ mutant-rspec (0.8.16)
21
+ mutant (~> 0.8.16)
22
+ rspec-core (>= 3.4.0, < 4.0.0)
23
23
 
24
24
  GEM
25
25
  remote: https://rubygems.org/
@@ -32,12 +32,12 @@ GEM
32
32
  abstract_type (~> 0.0.7)
33
33
  adamantium (~> 0.2)
34
34
  equalizer (~> 0.0.11)
35
- ast (2.3.0)
35
+ ast (2.4.0)
36
36
  axiom-types (0.1.1)
37
37
  descendants_tracker (~> 0.0.4)
38
38
  ice_nine (~> 0.11.0)
39
39
  thread_safe (~> 0.3, >= 0.3.1)
40
- codeclimate-engine-rb (0.4.0)
40
+ codeclimate-engine-rb (0.4.1)
41
41
  virtus (~> 1.0)
42
42
  coercible (1.0.0)
43
43
  descendants_tracker (~> 0.0.1)
@@ -46,41 +46,43 @@ GEM
46
46
  equalizer (~> 0.0.9)
47
47
  descendants_tracker (0.0.4)
48
48
  thread_safe (~> 0.3, >= 0.3.1)
49
- devtools (0.1.18)
49
+ devtools (0.1.21)
50
50
  abstract_type (~> 0.0.7)
51
51
  adamantium (~> 0.2.0)
52
52
  anima (~> 0.3.0)
53
53
  concord (~> 0.1.5)
54
- flay (~> 2.8.1)
55
- flog (~> 4.4.0)
56
- mutant (~> 0.8.11)
57
- mutant-rspec (~> 0.8.11)
54
+ flay (~> 2.10.0)
55
+ flog (~> 4.6.1)
56
+ mutant (~> 0.8.16)
57
+ mutant-rspec (~> 0.8.16)
58
58
  procto (~> 0.0.3)
59
- rake (~> 12.0.0)
60
- reek (~> 4.6.0)
61
- rspec (~> 3.5.0)
62
- rspec-core (~> 3.5.4)
59
+ rake (~> 12.3.0)
60
+ reek (~> 5.0.2)
61
+ rspec (~> 3.8.0)
62
+ rspec-core (~> 3.8.0)
63
63
  rspec-its (~> 1.2.0)
64
- rubocop (~> 0.47.0)
65
- simplecov (~> 0.14.0)
66
- yard (~> 0.9.1)
64
+ rubocop (~> 0.59.0)
65
+ simplecov (~> 0.16.1)
66
+ yard (~> 0.9.16)
67
67
  yardstick (~> 0.9.9)
68
68
  diff-lcs (1.3)
69
- docile (1.1.5)
69
+ docile (1.3.1)
70
70
  equalizer (0.0.11)
71
71
  erubis (2.7.0)
72
- ffi (1.9.18)
73
- flay (2.8.1)
72
+ ffi (1.9.25)
73
+ flay (2.10.0)
74
74
  erubis (~> 2.7.0)
75
75
  path_expander (~> 1.0)
76
76
  ruby_parser (~> 3.0)
77
77
  sexp_processor (~> 4.0)
78
- flog (4.4.1)
78
+ flog (4.6.2)
79
79
  path_expander (~> 1.0)
80
80
  ruby_parser (~> 3.1, > 3.1.0)
81
- sexp_processor (~> 4.4)
81
+ sexp_processor (~> 4.8)
82
82
  ice_nine (0.11.2)
83
+ jaro_winkler (1.5.1)
83
84
  json (2.1.0)
85
+ kwalify (0.7.2)
84
86
  memoizable (0.4.2)
85
87
  thread_safe (~> 0.3, >= 0.3.1)
86
88
  morpher (0.2.6)
@@ -93,66 +95,68 @@ GEM
93
95
  ice_nine (~> 0.11.0)
94
96
  procto (~> 0.0.2)
95
97
  parallel (1.12.1)
96
- parser (2.4.0.0)
97
- ast (~> 2.2)
98
- path_expander (1.0.2)
99
- powerpack (0.1.1)
98
+ parser (2.5.1.2)
99
+ ast (~> 2.4.0)
100
+ path_expander (1.0.3)
101
+ powerpack (0.1.2)
100
102
  procto (0.0.3)
101
- rainbow (2.2.2)
102
- rake
103
- rake (12.0.0)
104
- reek (4.6.2)
103
+ rainbow (3.0.0)
104
+ rake (12.3.1)
105
+ reek (5.0.2)
105
106
  codeclimate-engine-rb (~> 0.4.0)
106
- parser (>= 2.4.0.0, < 2.5)
107
- rainbow (~> 2.0)
108
- regexp_parser (0.4.9)
109
- rspec (3.5.0)
110
- rspec-core (~> 3.5.0)
111
- rspec-expectations (~> 3.5.0)
112
- rspec-mocks (~> 3.5.0)
113
- rspec-core (3.5.4)
114
- rspec-support (~> 3.5.0)
115
- rspec-expectations (3.5.0)
107
+ kwalify (~> 0.7.0)
108
+ parser (>= 2.5.0.0, < 2.6, != 2.5.1.1)
109
+ rainbow (>= 2.0, < 4.0)
110
+ regexp_parser (0.4.13)
111
+ rspec (3.8.0)
112
+ rspec-core (~> 3.8.0)
113
+ rspec-expectations (~> 3.8.0)
114
+ rspec-mocks (~> 3.8.0)
115
+ rspec-core (3.8.0)
116
+ rspec-support (~> 3.8.0)
117
+ rspec-expectations (3.8.1)
116
118
  diff-lcs (>= 1.2.0, < 2.0)
117
- rspec-support (~> 3.5.0)
119
+ rspec-support (~> 3.8.0)
118
120
  rspec-its (1.2.0)
119
121
  rspec-core (>= 3.0.0)
120
122
  rspec-expectations (>= 3.0.0)
121
- rspec-mocks (3.5.0)
123
+ rspec-mocks (3.8.0)
122
124
  diff-lcs (>= 1.2.0, < 2.0)
123
- rspec-support (~> 3.5.0)
124
- rspec-support (3.5.0)
125
- rubocop (0.47.1)
126
- parser (>= 2.3.3.1, < 3.0)
125
+ rspec-support (~> 3.8.0)
126
+ rspec-support (3.8.0)
127
+ rubocop (0.59.0)
128
+ jaro_winkler (~> 1.5.1)
129
+ parallel (~> 1.10)
130
+ parser (>= 2.5, != 2.5.1.1)
127
131
  powerpack (~> 0.1)
128
- rainbow (>= 1.99.1, < 3.0)
132
+ rainbow (>= 2.2.2, < 4.0)
129
133
  ruby-progressbar (~> 1.7)
130
134
  unicode-display_width (~> 1.0, >= 1.0.1)
131
- ruby-progressbar (1.8.1)
132
- ruby_parser (3.9.0)
133
- sexp_processor (~> 4.1)
134
- sexp_processor (4.9.0)
135
- simplecov (0.14.1)
136
- docile (~> 1.1.0)
135
+ ruby-progressbar (1.10.0)
136
+ ruby_parser (3.11.0)
137
+ sexp_processor (~> 4.9)
138
+ sexp_processor (4.11.0)
139
+ simplecov (0.16.1)
140
+ docile (~> 1.1)
137
141
  json (>= 1.8, < 3)
138
142
  simplecov-html (~> 0.10.0)
139
- simplecov-html (0.10.1)
143
+ simplecov-html (0.10.2)
140
144
  thread_safe (0.3.6)
141
- unicode-display_width (1.3.0)
142
- unparser (0.2.6)
145
+ unicode-display_width (1.4.0)
146
+ unparser (0.2.8)
143
147
  abstract_type (~> 0.0.7)
144
148
  adamantium (~> 0.2.0)
145
149
  concord (~> 0.1.5)
146
150
  diff-lcs (~> 1.3)
147
151
  equalizer (~> 0.0.9)
148
- parser (>= 2.3.1.2, < 2.5)
152
+ parser (>= 2.3.1.2, < 2.6)
149
153
  procto (~> 0.0.2)
150
154
  virtus (1.0.5)
151
155
  axiom-types (~> 0.1)
152
156
  coercible (~> 1.0)
153
157
  descendants_tracker (~> 0.0, >= 0.0.3)
154
158
  equalizer (~> 0.0, >= 0.0.9)
155
- yard (0.9.9)
159
+ yard (0.9.16)
156
160
  yardstick (0.9.9)
157
161
  yard (~> 0.8, >= 0.8.7.2)
158
162
 
@@ -161,9 +165,9 @@ PLATFORMS
161
165
 
162
166
  DEPENDENCIES
163
167
  bundler (~> 1.10)
164
- devtools (~> 0.1.12)
168
+ devtools (~> 0.1.21)
165
169
  ffi (~> 1.9.6)
166
170
  mutant!
167
171
 
168
172
  BUNDLED WITH
169
- 1.15.4
173
+ 1.16.4
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'devtools'
2
4
 
3
5
  Devtools.init_rake_tasks
data/bin/mutant CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  trap('INT') do |status|
4
5
  effective_status = status ? status + 128 : 128
data/config/flay.yml CHANGED
@@ -1,3 +1,3 @@
1
1
  ---
2
2
  threshold: 16
3
- total_score: 1316
3
+ total_score: 1318
data/config/reek.yml CHANGED
@@ -1,137 +1,137 @@
1
1
  ---
2
- Attribute:
3
- enabled: false
4
- exclude: []
5
- BooleanParameter:
6
- enabled: true
7
- exclude: []
8
- ClassVariable:
9
- enabled: true
10
- exclude: []
11
- ControlParameter:
12
- enabled: true
13
- exclude:
14
- - Mutant::Expression#match_length
15
- DataClump:
16
- enabled: true
17
- exclude: []
18
- max_copies: 2
19
- min_clump_size: 2
20
- DuplicateMethodCall:
21
- enabled: false
22
- exclude: []
23
- max_calls: 1
24
- allow_calls: []
25
- FeatureEnvy:
26
- enabled: false
27
- # Buggy smell detector
28
- IrresponsibleModule:
29
- enabled: false
30
- exclude: []
31
- LongParameterList:
32
- enabled: true
33
- exclude:
34
- - Mutant::Matcher::Method::Instance#self.build
35
- - Mutant::Meta::Example::DSL # 3 vars
36
- max_params: 2
37
- LongYieldList:
38
- enabled: true
39
- exclude: []
40
- max_params: 2
41
- NestedIterators:
42
- enabled: true
43
- exclude:
44
- - Mutant#self.singleton_subclass_instance
45
- - Mutant::CLI#parse
46
- - Mutant::Mutator::Node::Arguments#emit_argument_mutations
47
- - Mutant::Mutator::Node::Resbody#mutate_captures
48
- - Mutant::Mutator::Util::Array::Element#dispatch
49
- - Mutant::Parallel::Master#run
50
- - Mutant::RequireHighjack#self.call
51
- - Mutant::Selector::Expression#call
52
- - Parser::Lexer#self.new
53
- max_allowed_nesting: 1
54
- ignore_iterators: []
55
- NilCheck:
56
- enabled: false
57
- RepeatedConditional:
58
- enabled: true
59
- exclude:
60
- - Mutant::Mutator
61
- - Mutant::Meta::Example::DSL
62
- max_ifs: 1
63
- TooManyInstanceVariables:
64
- enabled: true
65
- exclude:
66
- - Mutant::Mutator # 4 vars
67
- - Mutant::Parallel::Master # 4 vars
68
- - Mutant::Meta::Example::DSL # 4 vars
69
- max_instance_variables: 3
70
- TooManyMethods:
71
- enabled: true
72
- exclude:
73
- - Mutant::CLI
74
- - Mutant::Mutator::Node
75
- - Mutant::Parallel::Master
76
- max_methods: 10
77
- TooManyStatements:
78
- enabled: true
79
- exclude:
80
- - Mutant::CLI#add_debug_options
81
- - Mutant::CLI#add_environment_options
82
- - Mutant::Reporter::CLI::Printer::Config#run
83
- - Mutant::Reporter::CLI::Printer::EnvProgress#run
84
- - Mutant::Runner#run_driver
85
- - Mutant::Zombifier::File#self.find
86
- max_statements: 7
87
- UncommunicativeMethodName:
88
- enabled: true
89
- exclude:
90
- - Mutant::AST::Sexp#s
91
- - Mutant::Mutation#sha1
92
- reject:
93
- - !ruby/regexp /^[a-z]$/
94
- - !ruby/regexp /[0-9]$/
95
- - !ruby/regexp /[A-Z]/
96
- accept: []
97
- UncommunicativeModuleName:
98
- enabled: true
99
- exclude: []
100
- reject:
101
- - !ruby/regexp /^.$/
102
- - !ruby/regexp /[0-9]$/
103
- accept: []
104
- UncommunicativeParameterName:
105
- enabled: true
106
- exclude: []
107
- reject:
108
- - !ruby/regexp /^.$/
109
- - !ruby/regexp /[0-9]$/
110
- - !ruby/regexp /[A-Z]/
111
- accept: []
112
- UncommunicativeVariableName:
113
- enabled: true
114
- exclude: []
115
- reject:
116
- - !ruby/regexp /^.$/
117
- - !ruby/regexp /[0-9]$/
118
- - !ruby/regexp /[A-Z]/
119
- accept: ['force_utf32']
120
- UnusedParameters:
121
- enabled: true
122
- exclude: []
123
- UtilityFunction:
124
- enabled: true
125
- exclude:
126
- - Mutant::AST::Sexp#s
127
- - Mutant::Actor::Env#new_mailbox
128
- - Mutant::CLI#reporter
129
- - Mutant::Integration::Null#call
130
- - Mutant::Integration::Rspec#parse_example
131
- - Mutant::Integration::Rspec#parse_expression # intentional, private
132
- - Mutant::Meta::Example::Verification#format_mutations # intentional, private
133
- - Mutant::Reporter::CLI::Format::Progressive#new_buffer
134
- - Mutant::Reporter::CLI::Printer::StatusProgressive#object # False positive calls super
135
- - Mutant::Repository::Diff#tracks? # intentional, private
136
- - Mutant::Repository::Diff#within_working_directory? # intentional, private
137
- max_helper_calls: 0
2
+ detectors:
3
+ Attribute:
4
+ enabled: false
5
+ exclude: []
6
+ BooleanParameter:
7
+ enabled: true
8
+ exclude: []
9
+ ClassVariable:
10
+ enabled: true
11
+ exclude: []
12
+ ControlParameter:
13
+ enabled: true
14
+ exclude:
15
+ - Mutant::Expression#match_length
16
+ DataClump:
17
+ enabled: true
18
+ exclude: []
19
+ max_copies: 2
20
+ min_clump_size: 2
21
+ DuplicateMethodCall:
22
+ enabled: false
23
+ exclude: []
24
+ max_calls: 1
25
+ allow_calls: []
26
+ FeatureEnvy:
27
+ enabled: false
28
+ # Buggy smell detector
29
+ IrresponsibleModule:
30
+ enabled: false
31
+ exclude: []
32
+ LongParameterList:
33
+ enabled: true
34
+ exclude:
35
+ - Mutant::Matcher::Method::Instance#self.build
36
+ - Mutant::Meta::Example::DSL # 3 vars
37
+ max_params: 2
38
+ LongYieldList:
39
+ enabled: true
40
+ exclude: []
41
+ max_params: 2
42
+ NestedIterators:
43
+ enabled: true
44
+ exclude:
45
+ - Mutant#self.singleton_subclass_instance
46
+ - Mutant::CLI#parse
47
+ - Mutant::Mutator::Node::Arguments#emit_argument_mutations
48
+ - Mutant::Mutator::Node::Resbody#mutate_captures
49
+ - Mutant::Mutator::Util::Array::Element#dispatch
50
+ - Mutant::Parallel::Master#run
51
+ - Mutant::RequireHighjack#self.call
52
+ - Mutant::Selector::Expression#call
53
+ - Parser::Lexer#self.new
54
+ max_allowed_nesting: 1
55
+ ignore_iterators: []
56
+ NilCheck:
57
+ enabled: false
58
+ RepeatedConditional:
59
+ enabled: true
60
+ exclude:
61
+ - Mutant::Mutator
62
+ - Mutant::Meta::Example::DSL
63
+ max_ifs: 1
64
+ TooManyInstanceVariables:
65
+ enabled: true
66
+ exclude:
67
+ - Mutant::Mutator # 4 vars
68
+ - Mutant::Parallel::Master # 4 vars
69
+ - Mutant::Meta::Example::DSL # 4 vars
70
+ max_instance_variables: 3
71
+ TooManyMethods:
72
+ enabled: true
73
+ exclude:
74
+ - Mutant::CLI
75
+ - Mutant::Mutator::Node
76
+ - Mutant::Parallel::Master
77
+ max_methods: 10
78
+ TooManyStatements:
79
+ enabled: true
80
+ exclude:
81
+ - Mutant::CLI#add_debug_options
82
+ - Mutant::CLI#add_environment_options
83
+ - Mutant::Reporter::CLI::Printer::Config#run
84
+ - Mutant::Reporter::CLI::Printer::EnvProgress#run
85
+ - Mutant::Runner#run_driver
86
+ - Mutant::Zombifier::File#self.find
87
+ max_statements: 7
88
+ UncommunicativeMethodName:
89
+ enabled: true
90
+ exclude:
91
+ - Mutant::AST::Sexp#s
92
+ - Mutant::Mutation#sha1
93
+ reject:
94
+ - '/^[a-z]$/'
95
+ - '/[0-9]$/'
96
+ - '/[A-Z]/'
97
+ accept: []
98
+ UncommunicativeModuleName:
99
+ enabled: true
100
+ exclude: []
101
+ reject:
102
+ - '/^.$/'
103
+ - '/[0-9]$/'
104
+ accept: []
105
+ UncommunicativeParameterName:
106
+ enabled: true
107
+ exclude: []
108
+ reject:
109
+ - '/^.$/'
110
+ - '/[0-9]$/'
111
+ - '/[A-Z]/'
112
+ accept: []
113
+ UncommunicativeVariableName:
114
+ enabled: true
115
+ exclude: []
116
+ reject:
117
+ - '/^.$/'
118
+ - '/[0-9]$/'
119
+ - '/[A-Z]/'
120
+ accept: ['force_utf32']
121
+ UnusedParameters:
122
+ enabled: true
123
+ exclude: []
124
+ UtilityFunction:
125
+ enabled: true
126
+ exclude:
127
+ - Mutant::AST::Sexp#s
128
+ - Mutant::Actor::Env#new_mailbox
129
+ - Mutant::CLI#reporter
130
+ - Mutant::Integration::Null#call
131
+ - Mutant::Integration::Rspec#parse_example
132
+ - Mutant::Integration::Rspec#parse_expression # intentional, private
133
+ - Mutant::Meta::Example::Verification#format_mutations # intentional, private
134
+ - Mutant::Reporter::CLI::Format::Progressive#new_buffer
135
+ - Mutant::Reporter::CLI::Printer::StatusProgressive#object # False positive calls super
136
+ - Mutant::Repository::Diff#tracks? # intentional, private
137
+ - Mutant::Repository::Diff#within_working_directory? # intentional, private