resolve typecheck errors
This commit is contained in:
parent
61691aa48a
commit
0191af7899
@ -13,7 +13,7 @@ module Cask
|
||||
source_string, target_hash = args
|
||||
|
||||
if target_hash
|
||||
raise CaskInvalidError unless target_hash.respond_to?(:keys)
|
||||
raise CaskInvalidError.new(cask) unless target_hash.respond_to?(:keys)
|
||||
|
||||
target_hash.assert_valid_keys(:target)
|
||||
end
|
||||
|
@ -78,6 +78,8 @@ module Cask
|
||||
key = k.to_sym
|
||||
|
||||
if DEFAULT_DIRS.key?(key)
|
||||
raise TypeError, "Invalid path for default dir #{k}: #{v.inspect}" if v.is_a?(Array)
|
||||
|
||||
[key, Pathname(v).expand_path]
|
||||
else
|
||||
[key, v]
|
||||
|
@ -236,7 +236,7 @@ module Cask
|
||||
def raw_url_line
|
||||
return @raw_url_line if defined?(@raw_url_line)
|
||||
|
||||
@raw_url_line = Pathname(@caller_location.path)
|
||||
@raw_url_line = Pathname(T.must(@caller_location.path))
|
||||
.each_line
|
||||
.drop(@caller_location.lineno - 1)
|
||||
.first
|
||||
|
@ -320,7 +320,7 @@ module Homebrew
|
||||
next unless tap.installed?
|
||||
|
||||
if tap.git_branch == "master" &&
|
||||
(Date.parse(tap.git_repo.last_commit_date) <= Date.today.prev_month)
|
||||
(Date.parse(T.must(tap.git_repo.last_commit_date)) <= Date.today.prev_month)
|
||||
ohai "#{tap.name} is old and unneeded, untapping to save space..."
|
||||
tap.uninstall
|
||||
else
|
||||
|
@ -59,6 +59,8 @@ class Requirements < SimpleDelegator
|
||||
__getobj__.delete(req)
|
||||
end
|
||||
end
|
||||
# see https://sorbet.org/docs/faq#how-can-i-fix-type-errors-that-arise-from-super
|
||||
T.bind(self, T.untyped)
|
||||
super
|
||||
self
|
||||
end
|
||||
|
@ -177,7 +177,7 @@ module Homebrew
|
||||
sig {
|
||||
params(
|
||||
cask: Cask::Cask,
|
||||
new_hash: T.nilable(String),
|
||||
new_hash: T.any(NilClass, String, Symbol),
|
||||
new_version: BumpVersionParser,
|
||||
replacement_pairs: T::Array[[T.any(Regexp, String), T.any(Regexp, String)]],
|
||||
).returns(T::Array[[T.any(Regexp, String), T.any(Regexp, String)]])
|
||||
@ -234,7 +234,7 @@ module Homebrew
|
||||
end
|
||||
elsif new_hash
|
||||
opoo "Cask contains multiple hashes; only updating hash for current arch." if cask.on_system_blocks_exist?
|
||||
replacement_pairs << [old_hash.to_s, new_hash]
|
||||
replacement_pairs << [old_hash.to_s, new_hash.to_s]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -126,7 +126,7 @@ class Pathname
|
||||
# https://bugs.ruby-lang.org/issues/7707
|
||||
# In that case, use the system "mv" command.
|
||||
if src.symlink?
|
||||
raise unless Kernel.system "mv", src, dst
|
||||
raise unless Kernel.system "mv", src.to_s, dst
|
||||
else
|
||||
FileUtils.mv src, dst
|
||||
end
|
||||
|
@ -1,5 +1,6 @@
|
||||
# typed: strict
|
||||
|
||||
module Predicable
|
||||
requires_ancestor { Class }
|
||||
include Kernel
|
||||
requires_ancestor { Module }
|
||||
end
|
||||
|
@ -343,7 +343,7 @@ class Formula
|
||||
|
||||
# The path that was specified to find this formula.
|
||||
def specified_path
|
||||
default_specified_path = Pathname(alias_path) if alias_path.present?
|
||||
default_specified_path = Pathname(T.must(alias_path)) if alias_path.present?
|
||||
default_specified_path ||= @unresolved_path
|
||||
|
||||
return default_specified_path if default_specified_path.presence&.exist?
|
||||
|
@ -17,7 +17,8 @@ module Language
|
||||
# fed to `npm install` only symlinks are created linking back to that
|
||||
# directory, consequently breaking that assumption. We require a tarball
|
||||
# because npm install creates a "real" installation when fed a tarball.
|
||||
if (package = Pathname("package.json")) && package.exist?
|
||||
package = Pathname("package.json")
|
||||
if package.exist?
|
||||
begin
|
||||
pkg_json = JSON.parse(package.read)
|
||||
rescue JSON::ParserError
|
||||
|
@ -23,6 +23,8 @@ class LazyObject < Delegator
|
||||
|
||||
# Forward to the inner object to make lazy objects type-checkable.
|
||||
def is_a?(klass)
|
||||
# see https://sorbet.org/docs/faq#how-can-i-fix-type-errors-that-arise-from-super
|
||||
T.bind(self, T.untyped)
|
||||
__getobj__.is_a?(klass) || super
|
||||
end
|
||||
end
|
||||
|
@ -42,7 +42,7 @@ class MacOSVersion < Version
|
||||
def initialize(version)
|
||||
raise MacOSVersion::Error, version unless /\A1\d+(?:\.\d+){0,2}\Z/.match?(version)
|
||||
|
||||
super(version)
|
||||
super(T.must(version))
|
||||
|
||||
@comparison_cache = {}
|
||||
end
|
||||
|
@ -541,11 +541,11 @@ class BottleSpecification
|
||||
end
|
||||
alias eql? ==
|
||||
|
||||
sig { params(tag: Utils::Bottles::Tag).returns(T.any(Symbol, String)) }
|
||||
sig { params(tag: Utils::Bottles::Tag).returns(String) }
|
||||
def tag_to_cellar(tag = Utils::Bottles.tag)
|
||||
spec = collector.specification_for(tag)
|
||||
if spec.present?
|
||||
spec.cellar
|
||||
spec.cellar.to_s
|
||||
else
|
||||
tag.default_cellar
|
||||
end
|
||||
|
@ -10,7 +10,7 @@ end
|
||||
module Homebrew
|
||||
# Parlour type signature generator helper class for Homebrew.
|
||||
module Parlour
|
||||
ROOT_DIR = T.let(Pathname(__dir__).parent.realpath.freeze, Pathname).freeze
|
||||
ROOT_DIR = T.let(Pathname(T.must(__dir__)).parent.realpath.freeze, Pathname).freeze
|
||||
|
||||
sig { returns(T::Array[Parser::AST::Node]) }
|
||||
def self.ast_list
|
||||
|
@ -132,7 +132,7 @@ module UnpackStrategy
|
||||
|
||||
children = tmp_unpack_dir.children
|
||||
|
||||
if children.count == 1 && !children.first.directory?
|
||||
if children.size == 1 && !children.fetch(0).directory?
|
||||
s = UnpackStrategy.detect(children.first, prioritize_extension: prioritize_extension)
|
||||
|
||||
s.extract_nestedly(to: to, verbose: verbose, prioritize_extension: prioritize_extension)
|
||||
|
@ -158,7 +158,7 @@ module Homebrew
|
||||
top_level_info_plist_paths.each(&parse_info_plist)
|
||||
ensure
|
||||
Cask::Utils.gain_permissions_remove(extract_dir)
|
||||
extract_dir.mkpath
|
||||
Pathname(extract_dir).mkpath
|
||||
end
|
||||
end
|
||||
|
||||
@ -252,7 +252,7 @@ module Homebrew
|
||||
}.uniq
|
||||
ensure
|
||||
Cask::Utils.gain_permissions_remove(extract_dir)
|
||||
extract_dir.mkpath
|
||||
Pathname(extract_dir).mkpath
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -65,13 +65,15 @@ module Utils
|
||||
receipt_file = file_from_bottle(bottle_file, receipt_file_path)
|
||||
tap = Tab.from_file_content(receipt_file, "#{bottle_file}/#{receipt_file_path}").tap
|
||||
"#{tap}/#{name}" if tap.present? && !tap.core_tap?
|
||||
elsif (bottle_json_path = Pathname(bottle_file.sub(/\.(\d+\.)?tar\.gz$/, ".json"))) &&
|
||||
bottle_json_path.exist? &&
|
||||
else
|
||||
bottle_json_path = Pathname(bottle_file.sub(/\.(\d+\.)?tar\.gz$/, ".json"))
|
||||
if bottle_json_path.exist? &&
|
||||
(bottle_json_path_contents = bottle_json_path.read.presence) &&
|
||||
(bottle_json = JSON.parse(bottle_json_path_contents).presence) &&
|
||||
bottle_json.is_a?(Hash)
|
||||
bottle_json.keys.first.presence
|
||||
end
|
||||
end
|
||||
full_name ||= name
|
||||
|
||||
[name, full_name]
|
||||
|
@ -4,7 +4,7 @@
|
||||
def init
|
||||
# `sorbet` is available transitively through the `yard-sorbet` plugin, but we're
|
||||
# outside of the standalone sorbet config, so `checked` is enabled by default
|
||||
T.bind(self, YARD::Templates::Template, checked: false)
|
||||
T.bind(self, T.all(Class, YARD::Templates::Template), checked: false)
|
||||
super
|
||||
|
||||
return if sections.empty?
|
||||
|
Loading…
x
Reference in New Issue
Block a user