Bump more RuboCops to Sorbet typed: strict
This commit is contained in:
parent
0c268f9234
commit
94085ebb57
@ -1,4 +1,4 @@
|
||||
# typed: true # rubocop:todo Sorbet/StrictSigil
|
||||
# typed: strict
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "forwardable"
|
||||
@ -33,10 +33,13 @@ module RuboCop
|
||||
->(node) { node.parent == block_node }
|
||||
end
|
||||
|
||||
@stanzas ||= block_body.each_node
|
||||
.select(&:stanza?)
|
||||
.select(&is_stanza)
|
||||
.map { |node| Stanza.new(node, comments) }
|
||||
@stanzas ||= T.let(
|
||||
block_body.each_node
|
||||
.select(&:stanza?)
|
||||
.select(&is_stanza)
|
||||
.map { |node| Stanza.new(node, comments) },
|
||||
T.nilable(T::Array[Stanza]),
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@ -46,17 +49,20 @@ module RuboCop
|
||||
class CaskBlock < StanzaBlock
|
||||
extend Forwardable
|
||||
|
||||
sig { returns(RuboCop::AST::BlockNode) }
|
||||
def cask_node
|
||||
block_node
|
||||
end
|
||||
|
||||
def_delegator :cask_node, :block_body, :cask_body
|
||||
|
||||
sig { returns(CaskHeader) }
|
||||
def header
|
||||
@header ||= CaskHeader.new(block_node.method_node)
|
||||
@header ||= T.let(CaskHeader.new(block_node.method_node), T.nilable(CaskHeader))
|
||||
end
|
||||
|
||||
# TODO: Use `StanzaBlock#stanzas` for all cops, where possible.
|
||||
sig { returns(T::Array[Stanza]) }
|
||||
def stanzas
|
||||
return [] unless cask_body
|
||||
|
||||
@ -65,6 +71,7 @@ module RuboCop
|
||||
.map { |node| Stanza.new(node, comments) }
|
||||
end
|
||||
|
||||
sig { returns(T::Array[Stanza]) }
|
||||
def toplevel_stanzas
|
||||
# If a `cask` block only contains one stanza, it is that stanza's direct parent,
|
||||
# otherwise stanzas are grouped in a block and `cask` is that block's parent.
|
||||
@ -74,7 +81,7 @@ module RuboCop
|
||||
->(stanza) { stanza.parent_node.cask_block? }
|
||||
end
|
||||
|
||||
@toplevel_stanzas ||= stanzas.select(&is_toplevel_stanza)
|
||||
@toplevel_stanzas ||= T.let(stanzas.select(&is_toplevel_stanza), T.nilable(T::Array[Stanza]))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,4 +1,4 @@
|
||||
# typed: true # rubocop:todo Sorbet/StrictSigil
|
||||
# typed: strict
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/cask/mixin/on_desc_stanza"
|
||||
@ -14,8 +14,9 @@ module RuboCop
|
||||
include DescHelper
|
||||
extend AutoCorrector
|
||||
|
||||
sig { params(stanza: RuboCop::Cask::AST::Stanza).void }
|
||||
def on_desc_stanza(stanza)
|
||||
@name = cask_block.header.cask_token
|
||||
@name = T.let(cask_block.header.cask_token, T.nilable(String))
|
||||
desc_call = stanza.stanza_node
|
||||
audit_desc(:cask, @name, desc_call)
|
||||
end
|
||||
|
@ -1,4 +1,4 @@
|
||||
# typed: true # rubocop:todo Sorbet/StrictSigil
|
||||
# typed: strict
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "forwardable"
|
||||
@ -17,8 +17,9 @@ module RuboCop
|
||||
|
||||
MSG_NO_SLASH = "'%<url>s' must have a slash after the domain."
|
||||
|
||||
sig { params(stanza: RuboCop::Cask::AST::Stanza).void }
|
||||
def on_homepage_stanza(stanza)
|
||||
@name = cask_block.header.cask_token
|
||||
@name = T.let(cask_block.header.cask_token, T.nilable(String))
|
||||
desc_call = stanza.stanza_node
|
||||
url_node = desc_call.first_argument
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# typed: true # rubocop:todo Sorbet/StrictSigil
|
||||
# typed: strict
|
||||
# frozen_string_literal: true
|
||||
|
||||
module RuboCop
|
||||
@ -9,8 +9,9 @@ module RuboCop
|
||||
extend Forwardable
|
||||
include CaskHelp
|
||||
|
||||
sig { override.params(cask_block: T.nilable(RuboCop::Cask::AST::CaskBlock)).void }
|
||||
def on_cask(cask_block)
|
||||
@cask_block = cask_block
|
||||
@cask_block = T.let(cask_block, T.nilable(RuboCop::Cask::AST::CaskBlock))
|
||||
|
||||
toplevel_stanzas.select(&:url?).each do |stanza|
|
||||
on_url_stanza(stanza)
|
||||
@ -19,6 +20,7 @@ module RuboCop
|
||||
|
||||
private
|
||||
|
||||
sig { returns(T.nilable(RuboCop::Cask::AST::CaskBlock)) }
|
||||
attr_reader :cask_block
|
||||
|
||||
def_delegators :cask_block,
|
||||
|
@ -1,4 +1,4 @@
|
||||
# typed: true # rubocop:todo Sorbet/StrictSigil
|
||||
# typed: strict
|
||||
# frozen_string_literal: true
|
||||
|
||||
module RuboCop
|
||||
@ -17,6 +17,7 @@ module RuboCop
|
||||
"Add it to an `on_{system}` block instead. " \
|
||||
"Use `:or_older` or `:or_newer` to specify a range of macOS versions."
|
||||
|
||||
sig { override.params(cask_block: RuboCop::Cask::AST::CaskBlock).void }
|
||||
def on_cask(cask_block)
|
||||
cask_stanzas = cask_block.toplevel_stanzas
|
||||
|
||||
@ -34,8 +35,9 @@ module RuboCop
|
||||
end
|
||||
end
|
||||
|
||||
sig { params(on_system: T::Array[RuboCop::Cask::AST::Stanza]).returns(T::Set[Symbol]) }
|
||||
def on_system_stanzas(on_system)
|
||||
names = Set.new
|
||||
names = T.let(Set.new, T::Set[Symbol])
|
||||
method_nodes = on_system.map(&:method_node)
|
||||
method_nodes.select(&:block_type?).each do |node|
|
||||
node.child_nodes.each do |child|
|
||||
@ -56,14 +58,17 @@ module RuboCop
|
||||
names
|
||||
end
|
||||
|
||||
sig { params(node: RuboCop::AST::Node).returns(T::Boolean) }
|
||||
def inside_livecheck_defined?(node)
|
||||
single_stanza_livecheck_defined?(node) || multi_stanza_livecheck_defined?(node)
|
||||
end
|
||||
|
||||
sig { params(node: RuboCop::AST::Node).returns(T::Boolean) }
|
||||
def single_stanza_livecheck_defined?(node)
|
||||
node.parent.block_type? && node.parent.method_name == :livecheck
|
||||
end
|
||||
|
||||
sig { params(node: RuboCop::AST::Node).returns(T::Boolean) }
|
||||
def multi_stanza_livecheck_defined?(node)
|
||||
grandparent_node = node.parent.parent
|
||||
node.parent.begin_type? && grandparent_node.block_type? && grandparent_node.method_name == :livecheck
|
||||
|
@ -1,4 +1,4 @@
|
||||
# typed: true # rubocop:todo Sorbet/StrictSigil
|
||||
# typed: strict
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "forwardable"
|
||||
@ -34,8 +34,9 @@ module RuboCop
|
||||
|
||||
FLIGHT_STANZA_NAMES = [:preflight, :postflight, :uninstall_preflight, :uninstall_postflight].freeze
|
||||
|
||||
sig { override.params(cask_block: RuboCop::Cask::AST::CaskBlock).void }
|
||||
def on_cask(cask_block)
|
||||
@cask_block = cask_block
|
||||
@cask_block = T.let(cask_block, T.nilable(RuboCop::Cask::AST::CaskBlock))
|
||||
|
||||
toplevel_stanzas.each do |stanza|
|
||||
next unless FLIGHT_STANZA_NAMES.include? stanza.stanza_name
|
||||
@ -50,10 +51,12 @@ module RuboCop
|
||||
|
||||
private
|
||||
|
||||
sig { returns(T.nilable(RuboCop::Cask::AST::CaskBlock)) }
|
||||
attr_reader :cask_block
|
||||
|
||||
def_delegators :cask_block, :toplevel_stanzas, :cask_body
|
||||
|
||||
sig { void }
|
||||
def simplify_sha256_stanzas
|
||||
nodes = {}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# typed: true # rubocop:todo Sorbet/StrictSigil
|
||||
# typed: strict
|
||||
# frozen_string_literal: true
|
||||
|
||||
module RuboCop
|
||||
@ -12,6 +12,7 @@ module RuboCop
|
||||
MSG_CSV = "Use `version.csv.first` instead of `version.before_comma` " \
|
||||
"and `version.csv.second` instead of `version.after_comma`."
|
||||
|
||||
sig { override.params(stanza: RuboCop::Cask::AST::Stanza).void }
|
||||
def on_url_stanza(stanza)
|
||||
return if stanza.stanza_node.type == :block
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# typed: true # rubocop:todo Sorbet/StrictSigil
|
||||
# typed: strict
|
||||
# frozen_string_literal: true
|
||||
|
||||
module RuboCop
|
||||
@ -9,6 +9,7 @@ module RuboCop
|
||||
MSG = "Only use `Homebrew.install_bundler_gems!` in dev-cmd."
|
||||
RESTRICT_ON_SEND = [:install_bundler_gems!].freeze
|
||||
|
||||
sig { params(node: RuboCop::AST::Node).void }
|
||||
def on_send(node)
|
||||
file_path = processed_source.file_path
|
||||
return if file_path.match?(%r{/(dev-cmd/.+|standalone/init|startup/bootsnap)\.rb\z})
|
||||
|
@ -1,4 +1,4 @@
|
||||
# typed: true # rubocop:todo Sorbet/StrictSigil
|
||||
# typed: strict
|
||||
# frozen_string_literal: true
|
||||
|
||||
module RuboCop
|
||||
@ -30,6 +30,7 @@ module RuboCop
|
||||
(send !nil? :rmtree ...)
|
||||
PATTERN
|
||||
|
||||
sig { params(node: RuboCop::AST::SendNode).void }
|
||||
def on_send(node)
|
||||
return if neither_rm_rf_nor_rmtree?(node)
|
||||
|
||||
@ -51,6 +52,7 @@ module RuboCop
|
||||
end
|
||||
end
|
||||
|
||||
sig { params(node: RuboCop::AST::SendNode).returns(T::Boolean) }
|
||||
def neither_rm_rf_nor_rmtree?(node)
|
||||
!any_receiver_rm_r_f?(node) && !no_receiver_rm_r_f?(node) &&
|
||||
!any_receiver_rmtree?(node) && !no_receiver_rmtree?(node)
|
||||
|
Loading…
x
Reference in New Issue
Block a user