From 17c6540a46697e539c75a81574892bfe0b057562 Mon Sep 17 00:00:00 2001 From: Masataka Pocke Kuwabara Date: Tue, 7 Jun 2022 16:24:15 +0900 Subject: [PATCH 1/6] Add Gem::MissingSpecError To solve UnknownConstant type warning of Steep in this repository --- stdlib/rubygems/0/errors.rbs | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 stdlib/rubygems/0/errors.rbs diff --git a/stdlib/rubygems/0/errors.rbs b/stdlib/rubygems/0/errors.rbs new file mode 100644 index 000000000..4919a0a64 --- /dev/null +++ b/stdlib/rubygems/0/errors.rbs @@ -0,0 +1,7 @@ +module Gem + class LoadError < ::LoadError + end + + class MissingSpecError + end +end From c814f84bbdfce8845e728fd49a9aa1f1421def69 Mon Sep 17 00:00:00 2001 From: Masataka Pocke Kuwabara Date: Tue, 7 Jun 2022 16:30:59 +0900 Subject: [PATCH 2/6] Add pp RBS shim to suppress type warnings of Steep in this repo --- sig/shims/pp.rbs | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 sig/shims/pp.rbs diff --git a/sig/shims/pp.rbs b/sig/shims/pp.rbs new file mode 100644 index 000000000..1be946051 --- /dev/null +++ b/sig/shims/pp.rbs @@ -0,0 +1,3 @@ +class PP + def self.pp: (untyped obj, IO out, ?Integer width) -> void +end From 04b772f42d7ec08117af36120e6eede3cb9b61ab Mon Sep 17 00:00:00 2001 From: Masataka Pocke Kuwabara Date: Tue, 7 Jun 2022 16:35:14 +0900 Subject: [PATCH 3/6] Add missing libraries to Steepfile --- Steepfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Steepfile b/Steepfile index 1be4aec5e..0dbc78b6b 100644 --- a/Steepfile +++ b/Steepfile @@ -9,7 +9,7 @@ target :lib do "lib/rbs/test.rb" ) - library "set", "pathname", "json", "logger", "monitor", "tsort", "uri" + library "set", "pathname", "json", "logger", "monitor", "tsort", "uri", 'yaml', 'dbm', 'pstore', 'singleton', 'shellwords', 'fileutils', 'find', 'digest' signature "stdlib/strscan/0/" signature "stdlib/rubygems/0/" signature "stdlib/optparse/0/" From d50655e8bb3a8f53436e5ca0488a0e2d19a05207 Mon Sep 17 00:00:00 2001 From: Masataka Pocke Kuwabara Date: Tue, 7 Jun 2022 16:38:46 +0900 Subject: [PATCH 4/6] Make case-when exhaustive to avoid type error --- lib/rbs/cli.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/rbs/cli.rb b/lib/rbs/cli.rb index 725f8a2a4..368c0cd62 100644 --- a/lib/rbs/cli.rb +++ b/lib/rbs/cli.rb @@ -714,6 +714,8 @@ def run_prototype_file(format, args) Prototype::RBI.new() when "rb" Prototype::RB.new() + else + raise end end From 9296c1a958d205ecd26c74e6dccb05afd1710a2a Mon Sep 17 00:00:00 2001 From: Masataka Pocke Kuwabara Date: Tue, 7 Jun 2022 16:39:54 +0900 Subject: [PATCH 5/6] Add CollectionNotAvailable error's RBS --- sig/collection/config.rbs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sig/collection/config.rbs b/sig/collection/config.rbs index a2144d2d3..80f63c34c 100644 --- a/sig/collection/config.rbs +++ b/sig/collection/config.rbs @@ -2,6 +2,9 @@ module RBS module Collection # This class represent the configration file. class Config + class CollectionNotAvailable < StandardError + end + class LockfileGenerator attr_reader config: Config attr_reader lock: Config? From 62851efeb6a960eda658df32f64572a364a8ca7a Mon Sep 17 00:00:00 2001 From: Masataka Pocke Kuwabara Date: Tue, 7 Jun 2022 16:54:55 +0900 Subject: [PATCH 6/6] Run rake annotate --- stdlib/rubygems/0/errors.rbs | 106 +++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) diff --git a/stdlib/rubygems/0/errors.rbs b/stdlib/rubygems/0/errors.rbs index 4919a0a64..d39535575 100644 --- a/stdlib/rubygems/0/errors.rbs +++ b/stdlib/rubygems/0/errors.rbs @@ -1,7 +1,113 @@ +# +# RubyGems is the Ruby standard for publishing and managing third party +# libraries. +# +# For user documentation, see: +# +# * `gem help` and `gem help [command]` +# * [RubyGems User Guide](https://guides.rubygems.org/) +# * [Frequently Asked Questions](https://guides.rubygems.org/faqs) +# +# +# For gem developer documentation see: +# +# * [Creating Gems](https://guides.rubygems.org/make-your-own-gem) +# * Gem::Specification +# * Gem::Version for version dependency notes +# +# +# Further RubyGems documentation can be found at: +# +# * [RubyGems Guides](https://guides.rubygems.org) +# * [RubyGems API](https://www.rubydoc.info/github/rubygems/rubygems) (also +# available from `gem server`) +# +# +# ## RubyGems Plugins +# +# RubyGems will load plugins in the latest version of each installed gem or +# $LOAD_PATH. Plugins must be named 'rubygems_plugin' (.rb, .so, etc) and +# placed at the root of your gem's #require_path. Plugins are installed at a +# special location and loaded on boot. +# +# For an example plugin, see the [Graph gem](https://github.com/seattlerb/graph) +# which adds a `gem graph` command. +# +# ## RubyGems Defaults, Packaging +# +# RubyGems defaults are stored in lib/rubygems/defaults.rb. If you're packaging +# RubyGems or implementing Ruby you can change RubyGems' defaults. +# +# For RubyGems packagers, provide lib/rubygems/defaults/operating_system.rb and +# override any defaults from lib/rubygems/defaults.rb. +# +# For Ruby implementers, provide lib/rubygems/defaults/#{RUBY_ENGINE}.rb and +# override any defaults from lib/rubygems/defaults.rb. +# +# If you need RubyGems to perform extra work on install or uninstall, your +# defaults override file can set pre/post install and uninstall hooks. See +# Gem::pre_install, Gem::pre_uninstall, Gem::post_install, Gem::post_uninstall. +# +# ## Bugs +# +# You can submit bugs to the [RubyGems bug +# tracker](https://github.com/rubygems/rubygems/issues) on GitHub +# +# ## Credits +# +# RubyGems is currently maintained by Eric Hodel. +# +# RubyGems was originally developed at RubyConf 2003 by: +# +# * Rich Kilmer -- rich(at)infoether.com +# * Chad Fowler -- chad(at)chadfowler.com +# * David Black -- dblack(at)wobblini.net +# * Paul Brannan -- paul(at)atdesk.com +# * Jim Weirich -- jim(at)weirichhouse.org +# +# +# Contributors: +# +# * Gavin Sinclair -- gsinclair(at)soyabean.com.au +# * George Marrows -- george.marrows(at)ntlworld.com +# * Dick Davies -- rasputnik(at)hellooperator.net +# * Mauricio Fernandez -- batsman.geo(at)yahoo.com +# * Simon Strandgaard -- neoneye(at)adslhome.dk +# * Dave Glasser -- glasser(at)mit.edu +# * Paul Duncan -- pabs(at)pablotron.org +# * Ville Aine -- vaine(at)cs.helsinki.fi +# * Eric Hodel -- drbrain(at)segment7.net +# * Daniel Berger -- djberg96(at)gmail.com +# * Phil Hagelberg -- technomancy(at)gmail.com +# * Ryan Davis -- ryand-ruby(at)zenspider.com +# * Evan Phoenix -- evan(at)fallingsnow.net +# * Steve Klabnik -- steve(at)steveklabnik.com +# +# +# (If your name is missing, PLEASE let us know!) +# +# ## License +# +# See [LICENSE.txt](rdoc-ref:lib/rubygems/LICENSE.txt) for permissions. +# +# Thanks! +# +# -The RubyGems Team +# module Gem + # + # Raised when RubyGems is unable to load or activate a gem. Contains the name + # and version requirements of the gem that either conflicts with already + # activated gems or that RubyGems is otherwise unable to activate. + # class LoadError < ::LoadError end + # + # Raised when trying to activate a gem, and that gem does not exist on the + # system. Instead of rescuing from this class, make sure to rescue from the + # superclass Gem::LoadError to catch all types of load errors. + # class MissingSpecError end end