Sha256: afcd3e7efe58ecaa2e1fa97bcd970dcc8b8c9656ff54845fd166361d40514d06
Contents?: true
Size: 928 Bytes
Versions: 24
Compression:
Stored size: 928 Bytes
Contents
# frozen_string_literal: true module RuboCop module Cop module Lint # Do not mix named captures and numbered captures in a Regexp literal # because numbered capture is ignored if they're mixed. # Replace numbered captures with non-capturing groupings or # named captures. # # # bad # /(?<foo>FOO)(BAR)/ # # # good # /(?<foo>FOO)(?<bar>BAR)/ # # # good # /(?<foo>FOO)(?:BAR)/ # # # good # /(FOO)(BAR)/ # class MixedRegexpCaptureTypes < Base MSG = 'Do not mix named captures and numbered captures ' \ 'in a Regexp literal.' def on_regexp(node) return if node.interpolation? return if node.each_capture(named: false).none? return if node.each_capture(named: true).none? add_offense(node) end end end end end
Version data entries
24 entries across 24 versions & 1 rubygems