Class: Mutineer::Mutators::RegexLiteral

Inherits:
Base
  • Object
show all
Defined in:
lib/mutineer/mutators/regex_literal.rb

Overview

Regular-expression literal mutator (Tier-2).

Conservative, clearly-safe textual swaps inside a plain regex literal: drop a leading ^ anchor, drop a trailing $ anchor, and swap the + and * quantifiers. Interpolated regexes use a different node type and are never visited. Escaped tokens (preceded by a backslash) are left alone.

Instance Method Summary collapse

Methods inherited from Base

#mutations_for

Instance Method Details

#visit_regular_expression_node(node) ⇒ void

This method returns an undefined value.

Visits regular-expression literals.

Parameters:

  • node (Prism::RegularExpressionNode)

    node to inspect.



18
19
20
21
22
23
# File 'lib/mutineer/mutators/regex_literal.rb', line 18

def visit_regular_expression_node(node)
  loc = node.content_loc
  content = @source.byteslice(loc.start_offset...loc.end_offset)
  scan(content, loc.start_offset)
  super
end