From 867e9823003be62bf30accdc4e87ccb69b98dc3d Mon Sep 17 00:00:00 2001 From: Issy Long Date: Sat, 25 Jan 2025 21:35:21 +0000 Subject: [PATCH] `T.cast` some `Node`s to `SendNode`s - In these cases we've already checked it's not a BlockNode, so we can safely cast to a SendNode and use `SendNode` methods. --- Library/Homebrew/rubocops/cask/ast/stanza.rb | 3 ++- Library/Homebrew/rubocops/cask/homepage_url_styling.rb | 2 +- Library/Homebrew/rubocops/cask/url.rb | 5 +++-- .../Homebrew/rubocops/cask/url_legacy_comma_separators.rb | 4 ++-- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Library/Homebrew/rubocops/cask/ast/stanza.rb b/Library/Homebrew/rubocops/cask/ast/stanza.rb index e6aaaed48b..cab7d606e4 100644 --- a/Library/Homebrew/rubocops/cask/ast/stanza.rb +++ b/Library/Homebrew/rubocops/cask/ast/stanza.rb @@ -53,8 +53,9 @@ module RuboCop sig { returns(Symbol) } def stanza_name 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 sig { returns(T.nilable(T::Array[Symbol])) } diff --git a/Library/Homebrew/rubocops/cask/homepage_url_styling.rb b/Library/Homebrew/rubocops/cask/homepage_url_styling.rb index b5c3f667d4..b170a5a2d8 100644 --- a/Library/Homebrew/rubocops/cask/homepage_url_styling.rb +++ b/Library/Homebrew/rubocops/cask/homepage_url_styling.rb @@ -20,7 +20,7 @@ module RuboCop sig { params(stanza: RuboCop::Cask::AST::Stanza).void } def on_homepage_stanza(stanza) @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 = if url_node.dstr_type? diff --git a/Library/Homebrew/rubocops/cask/url.rb b/Library/Homebrew/rubocops/cask/url.rb index 626935e1ed..a62f5e884a 100644 --- a/Library/Homebrew/rubocops/cask/url.rb +++ b/Library/Homebrew/rubocops/cask/url.rb @@ -33,8 +33,9 @@ module RuboCop return end - url_stanza = stanza.stanza_node.first_argument - hash_node = stanza.stanza_node.last_argument + stanza_node = T.cast(stanza.stanza_node, RuboCop::AST::SendNode) + url_stanza = stanza_node.first_argument + hash_node = stanza_node.last_argument audit_url(:cask, [stanza.stanza_node], [], livecheck_url: false) diff --git a/Library/Homebrew/rubocops/cask/url_legacy_comma_separators.rb b/Library/Homebrew/rubocops/cask/url_legacy_comma_separators.rb index e0afa1626f..ee61a6f028 100644 --- a/Library/Homebrew/rubocops/cask/url_legacy_comma_separators.rb +++ b/Library/Homebrew/rubocops/cask/url_legacy_comma_separators.rb @@ -14,9 +14,9 @@ module RuboCop sig { override.params(stanza: RuboCop::Cask::AST::Stanza).void } 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/