T.cast some Nodes to SendNodes

- In these cases we've already checked it's not a BlockNode,
  so we can safely cast to a SendNode and use `SendNode` methods.
This commit is contained in:
Issy Long 2025-01-25 21:35:21 +00:00
parent 06441f1337
commit 867e982300
No known key found for this signature in database
4 changed files with 8 additions and 6 deletions

View File

@ -53,8 +53,9 @@ module RuboCop
sig { returns(Symbol) } sig { returns(Symbol) }
def stanza_name def stanza_name
return :on_arch_conditional if arch_variable? return :on_arch_conditional if arch_variable?
return stanza_node.method_node&.method_name if stanza_node.block_type?
stanza_node.method_name T.cast(stanza_node, RuboCop::AST::SendNode).method_name
end end
sig { returns(T.nilable(T::Array[Symbol])) } sig { returns(T.nilable(T::Array[Symbol])) }

View File

@ -20,7 +20,7 @@ module RuboCop
sig { params(stanza: RuboCop::Cask::AST::Stanza).void } sig { params(stanza: RuboCop::Cask::AST::Stanza).void }
def on_homepage_stanza(stanza) def on_homepage_stanza(stanza)
@name = T.let(cask_block&.header&.cask_token, T.nilable(String)) @name = T.let(cask_block&.header&.cask_token, T.nilable(String))
desc_call = stanza.stanza_node desc_call = T.cast(stanza.stanza_node, RuboCop::AST::SendNode)
url_node = desc_call.first_argument url_node = desc_call.first_argument
url = if url_node.dstr_type? url = if url_node.dstr_type?

View File

@ -33,8 +33,9 @@ module RuboCop
return return
end end
url_stanza = stanza.stanza_node.first_argument stanza_node = T.cast(stanza.stanza_node, RuboCop::AST::SendNode)
hash_node = stanza.stanza_node.last_argument url_stanza = stanza_node.first_argument
hash_node = stanza_node.last_argument
audit_url(:cask, [stanza.stanza_node], [], livecheck_url: false) audit_url(:cask, [stanza.stanza_node], [], livecheck_url: false)

View File

@ -14,9 +14,9 @@ module RuboCop
sig { override.params(stanza: RuboCop::Cask::AST::Stanza).void } sig { override.params(stanza: RuboCop::Cask::AST::Stanza).void }
def on_url_stanza(stanza) def on_url_stanza(stanza)
return if stanza.stanza_node.type == :block return if stanza.stanza_node.block_type?
url_node = stanza.stanza_node.first_argument url_node = T.cast(stanza.stanza_node, RuboCop::AST::SendNode).first_argument
legacy_comma_separator_pattern = /version\.(before|after)_comma/ legacy_comma_separator_pattern = /version\.(before|after)_comma/