Fix Sorbet violations.
This commit is contained in:
parent
a5ff1b0b2e
commit
cee86846ce
@ -68,7 +68,7 @@ module Homebrew
|
|||||||
|
|
||||||
def build_from_source_formulae
|
def build_from_source_formulae
|
||||||
if build_from_source? || self[:HEAD?] || self[:build_bottle?]
|
if build_from_source? || self[:HEAD?] || self[:build_bottle?]
|
||||||
named.to_formulae_and_casks.select { |f| f.is_a?(Formula) }.map(&:full_name)
|
named.to_formulae.map(&:full_name)
|
||||||
else
|
else
|
||||||
[]
|
[]
|
||||||
end
|
end
|
||||||
|
|||||||
@ -36,7 +36,9 @@ module Homebrew
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
homepages = args.named.to_formulae_and_casks.map do |formula_or_cask|
|
# to_formulae_and_casks is typed to possibly return Kegs (but won't without explicitly asking)
|
||||||
|
formulae_or_casks = T.cast(args.named.to_formulae_and_casks, T::Array[T.any(Formula, Cask::Cask)])
|
||||||
|
homepages = formulae_or_casks.map do |formula_or_cask|
|
||||||
puts "Opening homepage for #{name_of(formula_or_cask)}"
|
puts "Opening homepage for #{name_of(formula_or_cask)}"
|
||||||
formula_or_cask.homepage
|
formula_or_cask.homepage
|
||||||
end
|
end
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
# typed: true
|
# typed: true
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require_relative "../warnings"
|
require_relative "../warnings"
|
||||||
Warnings.ignore :parser_syntax do
|
Warnings.ignore :parser_syntax do
|
||||||
@ -7,19 +7,21 @@ Warnings.ignore :parser_syntax do
|
|||||||
end
|
end
|
||||||
|
|
||||||
module Homebrew
|
module Homebrew
|
||||||
|
# Parlour type signature generator helper class for Homebrew.
|
||||||
module Parlour
|
module Parlour
|
||||||
extend T::Sig
|
extend T::Sig
|
||||||
|
|
||||||
ROOT_DIR = T.let(Pathname(__dir__).parent.realpath.freeze, Pathname)
|
ROOT_DIR = T.let(Pathname(__dir__).parent.realpath.freeze, Pathname).freeze
|
||||||
|
|
||||||
sig { returns(T::Array[Parser::AST::Node]) }
|
sig { returns(T::Array[Parser::AST::Node]) }
|
||||||
def self.ast_list
|
def self.ast_list
|
||||||
@@ast_list ||= begin
|
@ast_list ||= begin
|
||||||
ast_list = []
|
ast_list = []
|
||||||
parser = Parser::CurrentRuby.new
|
parser = Parser::CurrentRuby.new
|
||||||
|
prune_dirs = %w[sorbet shims test vendor].freeze
|
||||||
|
|
||||||
ROOT_DIR.find do |path|
|
ROOT_DIR.find do |path|
|
||||||
Find.prune if path.directory? && %w[sorbet shims test vendor].any? { |subdir| path == ROOT_DIR/subdir }
|
Find.prune if path.directory? && prune_dirs.any? { |subdir| path == ROOT_DIR/subdir }
|
||||||
|
|
||||||
Find.prune if path.file? && path.extname != ".rb"
|
Find.prune if path.file? && path.extname != ".rb"
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
# typed: strict
|
# typed: strict
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# Parlour type signature generator plugin for Homebrew DSL attributes.
|
||||||
class Attr < Parlour::Plugin
|
class Attr < Parlour::Plugin
|
||||||
sig { override.params(root: Parlour::RbiGenerator::Namespace).void }
|
sig { override.params(root: Parlour::RbiGenerator::Namespace).void }
|
||||||
def generate(root)
|
def generate(root)
|
||||||
@ -13,7 +14,7 @@ class Attr < Parlour::Plugin
|
|||||||
|
|
||||||
sig { override.returns(T.nilable(String)) }
|
sig { override.returns(T.nilable(String)) }
|
||||||
def strictness
|
def strictness
|
||||||
return "strict"
|
"strict"
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
@ -32,7 +33,7 @@ class Attr < Parlour::Plugin
|
|||||||
|
|
||||||
traverse_module_name(node).join("::")
|
traverse_module_name(node).join("::")
|
||||||
end
|
end
|
||||||
|
|
||||||
sig { params(node: Parser::AST::Node).returns(T::Array[T.untyped]) }
|
sig { params(node: Parser::AST::Node).returns(T::Array[T.untyped]) }
|
||||||
def find_custom_attr(node)
|
def find_custom_attr(node)
|
||||||
tree = T.let([], T::Array[T.untyped])
|
tree = T.let([], T::Array[T.untyped])
|
||||||
@ -46,15 +47,16 @@ class Attr < Parlour::Plugin
|
|||||||
elsif node.type == :sclass
|
elsif node.type == :sclass
|
||||||
subtree = find_custom_attr(node.children[1])
|
subtree = find_custom_attr(node.children[1])
|
||||||
return tree if subtree.empty?
|
return tree if subtree.empty?
|
||||||
|
|
||||||
tree << [:sclass, subtree]
|
tree << [:sclass, subtree]
|
||||||
elsif node.type == :class || node.type == :module
|
elsif node.type == :class || node.type == :module
|
||||||
element = []
|
element = []
|
||||||
if node.type == :class
|
case node.type
|
||||||
|
when :class
|
||||||
element << :class
|
element << :class
|
||||||
element << extract_module_name(children.shift)
|
element << extract_module_name(children.shift)
|
||||||
element << extract_module_name(children.shift)
|
element << extract_module_name(children.shift)
|
||||||
elsif node.type == :module
|
when :module
|
||||||
element << :module
|
element << :module
|
||||||
element << extract_module_name(children.shift)
|
element << extract_module_name(children.shift)
|
||||||
end
|
end
|
||||||
@ -69,7 +71,7 @@ class Attr < Parlour::Plugin
|
|||||||
tree << element
|
tree << element
|
||||||
elsif node.type == :send && children.shift.nil?
|
elsif node.type == :send && children.shift.nil?
|
||||||
method_name = children.shift
|
method_name = children.shift
|
||||||
if method_name == :attr_rw || method_name == :attr_predicate
|
if [:attr_rw, :attr_predicate].include?(method_name)
|
||||||
children.each do |name_node|
|
children.each do |name_node|
|
||||||
tree << [method_name, name_node.children.first.to_s]
|
tree << [method_name, name_node.children.first.to_s]
|
||||||
end
|
end
|
||||||
@ -96,7 +98,7 @@ class Attr < Parlour::Plugin
|
|||||||
name = node.shift
|
name = node.shift
|
||||||
name = "self.#{name}" if sclass
|
name = "self.#{name}" if sclass
|
||||||
namespace.create_method(name, parameters: [
|
namespace.create_method(name, parameters: [
|
||||||
Parlour::RbiGenerator::Parameter.new("arg", type: "T.untyped", default: "T.unsafe(nil)")
|
Parlour::RbiGenerator::Parameter.new("arg", type: "T.untyped", default: "T.unsafe(nil)"),
|
||||||
], return_type: "T.untyped")
|
], return_type: "T.untyped")
|
||||||
when :attr_predicate
|
when :attr_predicate
|
||||||
name = node.shift
|
name = node.shift
|
||||||
|
|||||||
@ -39,6 +39,7 @@ class Version
|
|||||||
when /\A#{PostToken::PATTERN}\z/o then PostToken
|
when /\A#{PostToken::PATTERN}\z/o then PostToken
|
||||||
when /\A#{NumericToken::PATTERN}\z/o then NumericToken
|
when /\A#{NumericToken::PATTERN}\z/o then NumericToken
|
||||||
when /\A#{StringToken::PATTERN}\z/o then StringToken
|
when /\A#{StringToken::PATTERN}\z/o then StringToken
|
||||||
|
else raise "Cannot find a matching token pattern"
|
||||||
end.new(val)
|
end.new(val)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
6
Library/Homebrew/yard/ignore_directives.rbi
Normal file
6
Library/Homebrew/yard/ignore_directives.rbi
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# typed: strict
|
||||||
|
|
||||||
|
module YARD
|
||||||
|
class Docstring; end
|
||||||
|
class DocstringParser; end
|
||||||
|
end
|
||||||
Loading…
x
Reference in New Issue
Block a user