Sha256: cc70d423261e634c332eed64e1c3b68963297839b8f73757436e10ff3e2d4620

Contents?: true

Size: 993 Bytes

Versions: 7

Compression:

Stored size: 993 Bytes

Contents

# frozen_string_literal: true

module RuboCop
  module Cop
    module Lint
      # This cop checks for invalid character literals with a non-escaped
      # whitespace character (e.g. `? `).
      # However, currently it's unclear whether there's a way to emit this
      # warning without syntax errors.
      #
      #     $ ruby -w
      #     p(? )
      #     -:1: warning: invalid character syntax; use ?\s
      #     -:1: syntax error, unexpected '?', expecting ')'
      #     p(? )
      #        ^
      #
      # @example
      #
      #   # bad
      #
      #   p(? )
      class InvalidCharacterLiteral < Cop
        include ParserDiagnostic

        private

        def relevant_diagnostic?(diagnostic)
          diagnostic.reason == :invalid_escape_use
        end

        def alternative_message(diagnostic)
          diagnostic
            .message
            .capitalize
            .gsub('character syntax', 'character literal')
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rubocop-0.50.0 lib/rubocop/cop/lint/invalid_character_literal.rb
rubocop-0.49.1 lib/rubocop/cop/lint/invalid_character_literal.rb
rubocop-0.49.0 lib/rubocop/cop/lint/invalid_character_literal.rb
rubocop-0.48.1 lib/rubocop/cop/lint/invalid_character_literal.rb
rubocop-0.48.0 lib/rubocop/cop/lint/invalid_character_literal.rb
rubocop-0.47.1 lib/rubocop/cop/lint/invalid_character_literal.rb
rubocop-0.47.0 lib/rubocop/cop/lint/invalid_character_literal.rb