Sha256: 5198fd283ae419389b00daf57e4cc736360105895cb567f7a9f8c6eb8beab2c3
Contents?: true
Size: 1021 Bytes
Versions: 1
Compression:
Stored size: 1021 Bytes
Contents
# frozen_string_literal: true require "rubocop" module RuboCop module Cop module Sorbet # Abstract cop specific to Sorbet signatures # # You can subclass it to use the `on_signature` trigger and the `signature?` node matcher. class SignatureCop < RuboCop::Cop::Cop @registry = Cop.registry # So we can properly subclass this cop def_node_matcher(:signature?, <<~PATTERN) (block (send {nil? #with_runtime? #without_runtime?} :sig (sym :final)? ) (args) ...) PATTERN def_node_matcher(:with_runtime?, <<~PATTERN) (const (const nil? :T) :Sig) PATTERN def_node_matcher(:without_runtime?, <<~PATTERN) (const (const (const nil? :T) :Sig) :WithoutRuntime) PATTERN def on_block(node) on_signature(node) if signature?(node) end def on_signature(_) # To be defined in subclasses end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rubocop-sorbet-0.7.0 | lib/rubocop/cop/sorbet/signatures/signature_cop.rb |