Fix assignment? predicate in send mutator to be more explicit

This commit is contained in:
Markus Schirp 2014-06-15 12:30:36 +00:00
parent ff4e7d4b32
commit 72e17c0981

View file

@ -21,7 +21,9 @@ module Mutant
INDEX_REFERENCE = :[] INDEX_REFERENCE = :[]
INDEX_ASSIGN = :[]= INDEX_ASSIGN = :[]=
ASSIGN_SUFFIX = '='.freeze VARIABLE_ASSIGN = :'='
ASSIGNMENT_OPERATORS = [INDEX_ASSIGN, VARIABLE_ASSIGN].to_set.freeze
ATTRIBUTE_ASSIGNMENT = /\A[a-z\d_]+=\z/.freeze
private private
@ -195,14 +197,12 @@ module Mutant
# Test for assignment # Test for assignment
# #
# FIXME: This also returns true for <= operator!
#
# @return [Boolean] # @return [Boolean]
# #
# @api private # @api private
# #
def assignment? def assignment?
selector.to_s[-1] == ASSIGN_SUFFIX arguments.one? && (ASSIGNMENT_OPERATORS.include?(selector) || ATTRIBUTE_ASSIGNMENT.match(selector))
end end
# Test for mlhs # Test for mlhs