steep-relaxed 1.9.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.gitmodules +0 -0
  4. data/CHANGELOG.md +1032 -0
  5. data/LICENSE +21 -0
  6. data/README.md +260 -0
  7. data/Rakefile +227 -0
  8. data/STDGEM_DEPENDENCIES.txt +59 -0
  9. data/Steepfile +68 -0
  10. data/bin/console +14 -0
  11. data/bin/generate-diagnostics-docs.rb +112 -0
  12. data/bin/mem_graph.rb +67 -0
  13. data/bin/mem_prof.rb +102 -0
  14. data/bin/output_rebaseline.rb +34 -0
  15. data/bin/output_test.rb +60 -0
  16. data/bin/rbs +20 -0
  17. data/bin/rbs-inline +19 -0
  18. data/bin/setup +9 -0
  19. data/bin/stackprof_test.rb +19 -0
  20. data/bin/steep +19 -0
  21. data/bin/steep-check.rb +251 -0
  22. data/bin/steep-prof +16 -0
  23. data/doc/narrowing.md +195 -0
  24. data/doc/shape.md +194 -0
  25. data/exe/steep +18 -0
  26. data/guides/README.md +5 -0
  27. data/guides/src/gem-rbs-collection/gem-rbs-collection.md +126 -0
  28. data/guides/src/getting-started/getting-started.md +163 -0
  29. data/guides/src/nil-optional/nil-optional.md +195 -0
  30. data/lib/steep/annotation_parser.rb +199 -0
  31. data/lib/steep/ast/annotation/collection.rb +172 -0
  32. data/lib/steep/ast/annotation.rb +137 -0
  33. data/lib/steep/ast/builtin.rb +104 -0
  34. data/lib/steep/ast/ignore.rb +148 -0
  35. data/lib/steep/ast/node/type_application.rb +88 -0
  36. data/lib/steep/ast/node/type_assertion.rb +81 -0
  37. data/lib/steep/ast/types/any.rb +35 -0
  38. data/lib/steep/ast/types/boolean.rb +45 -0
  39. data/lib/steep/ast/types/bot.rb +35 -0
  40. data/lib/steep/ast/types/class.rb +43 -0
  41. data/lib/steep/ast/types/factory.rb +557 -0
  42. data/lib/steep/ast/types/helper.rb +40 -0
  43. data/lib/steep/ast/types/instance.rb +42 -0
  44. data/lib/steep/ast/types/intersection.rb +93 -0
  45. data/lib/steep/ast/types/literal.rb +59 -0
  46. data/lib/steep/ast/types/logic.rb +84 -0
  47. data/lib/steep/ast/types/name.rb +128 -0
  48. data/lib/steep/ast/types/nil.rb +41 -0
  49. data/lib/steep/ast/types/proc.rb +117 -0
  50. data/lib/steep/ast/types/record.rb +79 -0
  51. data/lib/steep/ast/types/self.rb +43 -0
  52. data/lib/steep/ast/types/shared_instance.rb +11 -0
  53. data/lib/steep/ast/types/top.rb +35 -0
  54. data/lib/steep/ast/types/tuple.rb +60 -0
  55. data/lib/steep/ast/types/union.rb +97 -0
  56. data/lib/steep/ast/types/var.rb +65 -0
  57. data/lib/steep/ast/types/void.rb +35 -0
  58. data/lib/steep/cli.rb +401 -0
  59. data/lib/steep/diagnostic/deprecated/else_on_exhaustive_case.rb +20 -0
  60. data/lib/steep/diagnostic/deprecated/unknown_constant_assigned.rb +28 -0
  61. data/lib/steep/diagnostic/helper.rb +18 -0
  62. data/lib/steep/diagnostic/lsp_formatter.rb +78 -0
  63. data/lib/steep/diagnostic/result_printer2.rb +48 -0
  64. data/lib/steep/diagnostic/ruby.rb +1221 -0
  65. data/lib/steep/diagnostic/signature.rb +570 -0
  66. data/lib/steep/drivers/annotations.rb +52 -0
  67. data/lib/steep/drivers/check.rb +339 -0
  68. data/lib/steep/drivers/checkfile.rb +210 -0
  69. data/lib/steep/drivers/diagnostic_printer.rb +105 -0
  70. data/lib/steep/drivers/init.rb +66 -0
  71. data/lib/steep/drivers/langserver.rb +56 -0
  72. data/lib/steep/drivers/print_project.rb +113 -0
  73. data/lib/steep/drivers/stats.rb +203 -0
  74. data/lib/steep/drivers/utils/driver_helper.rb +143 -0
  75. data/lib/steep/drivers/utils/jobs_option.rb +26 -0
  76. data/lib/steep/drivers/vendor.rb +27 -0
  77. data/lib/steep/drivers/watch.rb +194 -0
  78. data/lib/steep/drivers/worker.rb +58 -0
  79. data/lib/steep/equatable.rb +23 -0
  80. data/lib/steep/expectations.rb +228 -0
  81. data/lib/steep/index/rbs_index.rb +350 -0
  82. data/lib/steep/index/signature_symbol_provider.rb +185 -0
  83. data/lib/steep/index/source_index.rb +167 -0
  84. data/lib/steep/interface/block.rb +103 -0
  85. data/lib/steep/interface/builder.rb +843 -0
  86. data/lib/steep/interface/function.rb +1090 -0
  87. data/lib/steep/interface/method_type.rb +330 -0
  88. data/lib/steep/interface/shape.rb +239 -0
  89. data/lib/steep/interface/substitution.rb +159 -0
  90. data/lib/steep/interface/type_param.rb +115 -0
  91. data/lib/steep/located_value.rb +20 -0
  92. data/lib/steep/method_name.rb +42 -0
  93. data/lib/steep/module_helper.rb +24 -0
  94. data/lib/steep/node_helper.rb +273 -0
  95. data/lib/steep/path_helper.rb +30 -0
  96. data/lib/steep/project/dsl.rb +268 -0
  97. data/lib/steep/project/group.rb +31 -0
  98. data/lib/steep/project/options.rb +63 -0
  99. data/lib/steep/project/pattern.rb +59 -0
  100. data/lib/steep/project/target.rb +92 -0
  101. data/lib/steep/project.rb +78 -0
  102. data/lib/steep/rake_task.rb +132 -0
  103. data/lib/steep/range_extension.rb +29 -0
  104. data/lib/steep/server/base_worker.rb +97 -0
  105. data/lib/steep/server/change_buffer.rb +73 -0
  106. data/lib/steep/server/custom_methods.rb +77 -0
  107. data/lib/steep/server/delay_queue.rb +45 -0
  108. data/lib/steep/server/interaction_worker.rb +492 -0
  109. data/lib/steep/server/lsp_formatter.rb +455 -0
  110. data/lib/steep/server/master.rb +922 -0
  111. data/lib/steep/server/target_group_files.rb +205 -0
  112. data/lib/steep/server/type_check_controller.rb +366 -0
  113. data/lib/steep/server/type_check_worker.rb +303 -0
  114. data/lib/steep/server/work_done_progress.rb +64 -0
  115. data/lib/steep/server/worker_process.rb +176 -0
  116. data/lib/steep/services/completion_provider.rb +802 -0
  117. data/lib/steep/services/content_change.rb +61 -0
  118. data/lib/steep/services/file_loader.rb +74 -0
  119. data/lib/steep/services/goto_service.rb +441 -0
  120. data/lib/steep/services/hover_provider/rbs.rb +88 -0
  121. data/lib/steep/services/hover_provider/ruby.rb +221 -0
  122. data/lib/steep/services/hover_provider/singleton_methods.rb +20 -0
  123. data/lib/steep/services/path_assignment.rb +46 -0
  124. data/lib/steep/services/signature_help_provider.rb +202 -0
  125. data/lib/steep/services/signature_service.rb +428 -0
  126. data/lib/steep/services/stats_calculator.rb +68 -0
  127. data/lib/steep/services/type_check_service.rb +394 -0
  128. data/lib/steep/services/type_name_completion.rb +236 -0
  129. data/lib/steep/signature/validator.rb +651 -0
  130. data/lib/steep/source/ignore_ranges.rb +69 -0
  131. data/lib/steep/source.rb +691 -0
  132. data/lib/steep/subtyping/cache.rb +30 -0
  133. data/lib/steep/subtyping/check.rb +1113 -0
  134. data/lib/steep/subtyping/constraints.rb +341 -0
  135. data/lib/steep/subtyping/relation.rb +101 -0
  136. data/lib/steep/subtyping/result.rb +324 -0
  137. data/lib/steep/subtyping/variable_variance.rb +89 -0
  138. data/lib/steep/test.rb +9 -0
  139. data/lib/steep/thread_waiter.rb +43 -0
  140. data/lib/steep/type_construction.rb +5183 -0
  141. data/lib/steep/type_inference/block_params.rb +416 -0
  142. data/lib/steep/type_inference/case_when.rb +303 -0
  143. data/lib/steep/type_inference/constant_env.rb +56 -0
  144. data/lib/steep/type_inference/context.rb +195 -0
  145. data/lib/steep/type_inference/logic_type_interpreter.rb +613 -0
  146. data/lib/steep/type_inference/method_call.rb +193 -0
  147. data/lib/steep/type_inference/method_params.rb +531 -0
  148. data/lib/steep/type_inference/multiple_assignment.rb +194 -0
  149. data/lib/steep/type_inference/send_args.rb +712 -0
  150. data/lib/steep/type_inference/type_env.rb +341 -0
  151. data/lib/steep/type_inference/type_env_builder.rb +138 -0
  152. data/lib/steep/typing.rb +321 -0
  153. data/lib/steep/version.rb +3 -0
  154. data/lib/steep.rb +369 -0
  155. data/manual/annotations.md +181 -0
  156. data/manual/ignore.md +20 -0
  157. data/manual/ruby-diagnostics.md +1879 -0
  158. data/sample/Steepfile +22 -0
  159. data/sample/lib/conference.rb +49 -0
  160. data/sample/lib/length.rb +35 -0
  161. data/sample/sig/conference.rbs +42 -0
  162. data/sample/sig/generics.rbs +15 -0
  163. data/sample/sig/length.rbs +34 -0
  164. data/steep-relaxed.gemspec +56 -0
  165. metadata +340 -0
data/sample/Steepfile ADDED
@@ -0,0 +1,22 @@
1
+ D = Steep::Diagnostic
2
+
3
+ target :lib do
4
+ signature "sig"
5
+
6
+ check "lib" # Directory name
7
+
8
+ library "rbs"
9
+
10
+ # configure_code_diagnostics(D::Ruby.strict) # `strict` diagnostics setting
11
+ # configure_code_diagnostics(D::Ruby.lenient) # `lenient` diagnostics setting
12
+ # configure_code_diagnostics(D::Ruby.silent) # `silent` diagnostics setting
13
+ # configure_code_diagnostics do |hash| # You can setup everything yourself
14
+ # hash[D::Ruby::NoMethod] = :information
15
+ # end
16
+ end
17
+
18
+ # target :lib2 do
19
+ # check "lib/length.rb" # Directory name
20
+ # signature "sig/length.rbs"
21
+ # unreferenced!
22
+ # end
@@ -0,0 +1,49 @@
1
+ class Conference
2
+ # @dynamic title, year
3
+ attr_reader :title
4
+ attr_reader :year
5
+
6
+ def initialize(title:, year:)
7
+ @title = title
8
+ @year = year
9
+ end
10
+
11
+ def hello_world
12
+
13
+ end
14
+ end
15
+
16
+ Conference.new()
17
+
18
+ Konference.new()
19
+
20
+ class Hogehogehoge
21
+ def to_s = 123
22
+
23
+ def foo = 23
24
+ end
25
+
26
+ # @type var foo: Konference
27
+
28
+ foo = Conference.new
29
+
30
+ class Conference
31
+ def hello = 123
32
+ end
33
+
34
+ class Conference12
35
+ def hello = 123
36
+
37
+ class Integer
38
+ end
39
+ end
40
+
41
+ class HogeHoge
42
+ def foo(...)
43
+ bar(self, ...).to_s
44
+ end
45
+ end
46
+
47
+
48
+ conference = nil #: Conference?
49
+
@@ -0,0 +1,35 @@
1
+ class LengthCalculator
2
+ def max0(x, y)
3
+ if x.size > y.size
4
+ x
5
+ else
6
+ y
7
+ end
8
+ end
9
+
10
+ def max1(x, y)
11
+ if x.size > y.size
12
+ x
13
+ else
14
+ y
15
+ end
16
+ end
17
+
18
+ def max2(x, y)
19
+ if x.size > y.size
20
+ x
21
+ else
22
+ y
23
+ end
24
+ end
25
+ end
26
+
27
+ calc = LengthCalculator.new()
28
+
29
+ calc.max0("foo", "bar")
30
+ calc.max1("foo", "bar")
31
+ calc.max2("foo", "bar")
32
+
33
+ calc.max0(true, false)
34
+ calc.max1(true, false)
35
+ calc.max2(true, false)
@@ -0,0 +1,42 @@
1
+ use Object as Foo
2
+
3
+ class Conference
4
+ attr_reader title: String
5
+ attr_reader year: Integer
6
+
7
+ def initialize: (title: String, year: Integer) -> void
8
+ end
9
+
10
+ class NilClass
11
+ def must: () -> bot
12
+ end
13
+
14
+ class Object
15
+ def must: () -> self
16
+ end
17
+
18
+ # Test data
19
+ class Konference = Conference
20
+
21
+ class Allay = ::Array
22
+
23
+ module Hoge = Bazzz
24
+
25
+ module Bazzz = Hoge
26
+
27
+ class Foo < Konference
28
+ class OBH = String
29
+
30
+ type a = Integer
31
+ end
32
+
33
+ type foo = [Conference, Konference]
34
+
35
+
36
+ type b = ::Foo::OBH
37
+
38
+ class HogeHoge
39
+ def foo: (Integer, bar: String) -> String
40
+
41
+ def bar: (Object, Integer, bar: String, ?baz: Integer) { () -> Integer } -> Integer
42
+ end
@@ -0,0 +1,15 @@
1
+ module LocationHelper : _WithLocation
2
+ interface _WithLocation
3
+ def location_method: () -> String
4
+ end
5
+
6
+ def hello: () -> void
7
+ end
8
+
9
+ class StringGeneric[X < Integer, Y < Integer = String]
10
+ def location_method: () -> Integer
11
+
12
+ include LocationHelper
13
+ extend LocationHelper
14
+ end
15
+
@@ -0,0 +1,34 @@
1
+ # LengthCalculator shows three different method types having the same implementation.
2
+ #
3
+ # * It receives two objects.
4
+ # * It calls the `#size` method of the objects, and compare the return values.
5
+ # * It returns one of the objects which has bigger `#size` value.
6
+ #
7
+ class LengthCalculator
8
+ interface _Sized
9
+ def size: () -> Integer
10
+ end
11
+
12
+ # *Untyped* version -- all (static) type information is lost.
13
+ #
14
+ # You can pass any object, even if the object doesn't have `#size` method.
15
+ #
16
+ def max0: (untyped, untyped) -> untyped
17
+
18
+ # *Subtyping* version -- with constraints on arguments, but the return type is inaccurate.
19
+ #
20
+ # You can type check if the object has `#size` method of the expected type.
21
+ # However, the return type also has `_Sized` type, which drops other methods than `#size`.
22
+ #
23
+ def max1: (_Sized, _Sized) -> _Sized
24
+
25
+ # *Generics* version -- the most advanced one in Steep/RBS
26
+ #
27
+ # You can type check if the object has `#size` method of the expected type.
28
+ # And the return type is the one given as arguments.
29
+ #
30
+ # Note that the type system of Steep cannot ensure the given two objects have the same type.
31
+ # Passing `String` and `Array[String]` will infer the return type `String | Array[String]`.
32
+ #
33
+ def max2: [T < _Sized] (T, T) -> T
34
+ end
@@ -0,0 +1,56 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'steep/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "steep-relaxed"
8
+ spec.version = Steep::VERSION
9
+ spec.authors = ["Soutaro Matsumoto"]
10
+ spec.email = ["matsumoto@soutaro.com"]
11
+
12
+ spec.summary = %q{Gradual Typing for Ruby}
13
+ spec.description = %q{Gradual Typing for Ruby}
14
+ spec.homepage = "https://github.com/rossta/steep-relaxed"
15
+ spec.license = 'MIT'
16
+
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = "https://github.com/rossta/steep-relaxed"
19
+ spec.metadata["changelog_uri"] = "https://github.com/rossta/steep-relaxed/blob/master/CHANGELOG.md"
20
+
21
+ skip_dirs = %w(test spec features smoke sig gemfile_steep .github .vscode)
22
+ skip_files = %w(Gemfile Gemfile.lock rbs_collection.steep.yaml rbs_collection.steep.lock.yaml)
23
+
24
+ spec.files = `git ls-files -z`.split("\x0").reject {|f|
25
+ skip_dirs.any? {|dir| f.start_with?(dir + File::SEPARATOR) } || skip_files.include?(f)
26
+ }
27
+
28
+ spec.bindir = "exe"
29
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
30
+ spec.require_paths = ["lib"]
31
+
32
+ if false
33
+ # This is to let dependabot use 3.3, instead of 3.1.x.
34
+ # They use `required_ruby_version=` method to detect the Ruby version they use.
35
+ spec.required_ruby_version = ">= 3.3.0"
36
+ end
37
+
38
+ spec.required_ruby_version = '>= 3.1.0'
39
+
40
+ spec.add_runtime_dependency "parser", ">= 3.1"
41
+ spec.add_runtime_dependency "activesupport", ">= 4.2"
42
+ spec.add_runtime_dependency "rainbow", ">= 2.2.2", "< 4.0"
43
+ spec.add_runtime_dependency "listen", "~> 3.0"
44
+ spec.add_runtime_dependency "language_server-protocol", ">= 3.15", "< 4.0"
45
+ spec.add_runtime_dependency "rbs", "~> 3.8"
46
+ spec.add_runtime_dependency "concurrent-ruby", ">= 1.1.10"
47
+ spec.add_runtime_dependency "terminal-table", ">= 2", "< 4"
48
+
49
+ # Stdgem dependencies omitted for compatibility with legacy environments
50
+ # spec.add_runtime_dependency "securerandom", ">= 0.1"
51
+ # spec.add_runtime_dependency "json", ">= 2.1.0"
52
+ # spec.add_runtime_dependency "logger", ">= 1.3.0"
53
+ # spec.add_runtime_dependency "fileutils", ">= 1.1.0"
54
+ # spec.add_runtime_dependency "strscan", ">= 1.0.0"
55
+ # spec.add_runtime_dependency "csv", ">= 3.0.9"
56
+ end
metadata ADDED
@@ -0,0 +1,340 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: steep-relaxed
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.9.3.3
5
+ platform: ruby
6
+ authors:
7
+ - Soutaro Matsumoto
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2025-02-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: parser
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '3.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '3.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '4.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '4.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rainbow
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 2.2.2
48
+ - - "<"
49
+ - !ruby/object:Gem::Version
50
+ version: '4.0'
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: 2.2.2
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '4.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: listen
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '3.0'
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '3.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: language_server-protocol
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '3.15'
82
+ - - "<"
83
+ - !ruby/object:Gem::Version
84
+ version: '4.0'
85
+ type: :runtime
86
+ prerelease: false
87
+ version_requirements: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: '3.15'
92
+ - - "<"
93
+ - !ruby/object:Gem::Version
94
+ version: '4.0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: rbs
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '3.8'
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: '3.8'
109
+ - !ruby/object:Gem::Dependency
110
+ name: concurrent-ruby
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: 1.1.10
116
+ type: :runtime
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 1.1.10
123
+ - !ruby/object:Gem::Dependency
124
+ name: terminal-table
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: '2'
130
+ - - "<"
131
+ - !ruby/object:Gem::Version
132
+ version: '4'
133
+ type: :runtime
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '2'
140
+ - - "<"
141
+ - !ruby/object:Gem::Version
142
+ version: '4'
143
+ description: Gradual Typing for Ruby
144
+ email:
145
+ - matsumoto@soutaro.com
146
+ executables:
147
+ - steep
148
+ extensions: []
149
+ extra_rdoc_files: []
150
+ files:
151
+ - ".gitignore"
152
+ - ".gitmodules"
153
+ - CHANGELOG.md
154
+ - LICENSE
155
+ - README.md
156
+ - Rakefile
157
+ - STDGEM_DEPENDENCIES.txt
158
+ - Steepfile
159
+ - bin/console
160
+ - bin/generate-diagnostics-docs.rb
161
+ - bin/mem_graph.rb
162
+ - bin/mem_prof.rb
163
+ - bin/output_rebaseline.rb
164
+ - bin/output_test.rb
165
+ - bin/rbs
166
+ - bin/rbs-inline
167
+ - bin/setup
168
+ - bin/stackprof_test.rb
169
+ - bin/steep
170
+ - bin/steep-check.rb
171
+ - bin/steep-prof
172
+ - doc/narrowing.md
173
+ - doc/shape.md
174
+ - exe/steep
175
+ - guides/README.md
176
+ - guides/src/gem-rbs-collection/gem-rbs-collection.md
177
+ - guides/src/getting-started/getting-started.md
178
+ - guides/src/nil-optional/nil-optional.md
179
+ - lib/steep.rb
180
+ - lib/steep/annotation_parser.rb
181
+ - lib/steep/ast/annotation.rb
182
+ - lib/steep/ast/annotation/collection.rb
183
+ - lib/steep/ast/builtin.rb
184
+ - lib/steep/ast/ignore.rb
185
+ - lib/steep/ast/node/type_application.rb
186
+ - lib/steep/ast/node/type_assertion.rb
187
+ - lib/steep/ast/types/any.rb
188
+ - lib/steep/ast/types/boolean.rb
189
+ - lib/steep/ast/types/bot.rb
190
+ - lib/steep/ast/types/class.rb
191
+ - lib/steep/ast/types/factory.rb
192
+ - lib/steep/ast/types/helper.rb
193
+ - lib/steep/ast/types/instance.rb
194
+ - lib/steep/ast/types/intersection.rb
195
+ - lib/steep/ast/types/literal.rb
196
+ - lib/steep/ast/types/logic.rb
197
+ - lib/steep/ast/types/name.rb
198
+ - lib/steep/ast/types/nil.rb
199
+ - lib/steep/ast/types/proc.rb
200
+ - lib/steep/ast/types/record.rb
201
+ - lib/steep/ast/types/self.rb
202
+ - lib/steep/ast/types/shared_instance.rb
203
+ - lib/steep/ast/types/top.rb
204
+ - lib/steep/ast/types/tuple.rb
205
+ - lib/steep/ast/types/union.rb
206
+ - lib/steep/ast/types/var.rb
207
+ - lib/steep/ast/types/void.rb
208
+ - lib/steep/cli.rb
209
+ - lib/steep/diagnostic/deprecated/else_on_exhaustive_case.rb
210
+ - lib/steep/diagnostic/deprecated/unknown_constant_assigned.rb
211
+ - lib/steep/diagnostic/helper.rb
212
+ - lib/steep/diagnostic/lsp_formatter.rb
213
+ - lib/steep/diagnostic/result_printer2.rb
214
+ - lib/steep/diagnostic/ruby.rb
215
+ - lib/steep/diagnostic/signature.rb
216
+ - lib/steep/drivers/annotations.rb
217
+ - lib/steep/drivers/check.rb
218
+ - lib/steep/drivers/checkfile.rb
219
+ - lib/steep/drivers/diagnostic_printer.rb
220
+ - lib/steep/drivers/init.rb
221
+ - lib/steep/drivers/langserver.rb
222
+ - lib/steep/drivers/print_project.rb
223
+ - lib/steep/drivers/stats.rb
224
+ - lib/steep/drivers/utils/driver_helper.rb
225
+ - lib/steep/drivers/utils/jobs_option.rb
226
+ - lib/steep/drivers/vendor.rb
227
+ - lib/steep/drivers/watch.rb
228
+ - lib/steep/drivers/worker.rb
229
+ - lib/steep/equatable.rb
230
+ - lib/steep/expectations.rb
231
+ - lib/steep/index/rbs_index.rb
232
+ - lib/steep/index/signature_symbol_provider.rb
233
+ - lib/steep/index/source_index.rb
234
+ - lib/steep/interface/block.rb
235
+ - lib/steep/interface/builder.rb
236
+ - lib/steep/interface/function.rb
237
+ - lib/steep/interface/method_type.rb
238
+ - lib/steep/interface/shape.rb
239
+ - lib/steep/interface/substitution.rb
240
+ - lib/steep/interface/type_param.rb
241
+ - lib/steep/located_value.rb
242
+ - lib/steep/method_name.rb
243
+ - lib/steep/module_helper.rb
244
+ - lib/steep/node_helper.rb
245
+ - lib/steep/path_helper.rb
246
+ - lib/steep/project.rb
247
+ - lib/steep/project/dsl.rb
248
+ - lib/steep/project/group.rb
249
+ - lib/steep/project/options.rb
250
+ - lib/steep/project/pattern.rb
251
+ - lib/steep/project/target.rb
252
+ - lib/steep/rake_task.rb
253
+ - lib/steep/range_extension.rb
254
+ - lib/steep/server/base_worker.rb
255
+ - lib/steep/server/change_buffer.rb
256
+ - lib/steep/server/custom_methods.rb
257
+ - lib/steep/server/delay_queue.rb
258
+ - lib/steep/server/interaction_worker.rb
259
+ - lib/steep/server/lsp_formatter.rb
260
+ - lib/steep/server/master.rb
261
+ - lib/steep/server/target_group_files.rb
262
+ - lib/steep/server/type_check_controller.rb
263
+ - lib/steep/server/type_check_worker.rb
264
+ - lib/steep/server/work_done_progress.rb
265
+ - lib/steep/server/worker_process.rb
266
+ - lib/steep/services/completion_provider.rb
267
+ - lib/steep/services/content_change.rb
268
+ - lib/steep/services/file_loader.rb
269
+ - lib/steep/services/goto_service.rb
270
+ - lib/steep/services/hover_provider/rbs.rb
271
+ - lib/steep/services/hover_provider/ruby.rb
272
+ - lib/steep/services/hover_provider/singleton_methods.rb
273
+ - lib/steep/services/path_assignment.rb
274
+ - lib/steep/services/signature_help_provider.rb
275
+ - lib/steep/services/signature_service.rb
276
+ - lib/steep/services/stats_calculator.rb
277
+ - lib/steep/services/type_check_service.rb
278
+ - lib/steep/services/type_name_completion.rb
279
+ - lib/steep/signature/validator.rb
280
+ - lib/steep/source.rb
281
+ - lib/steep/source/ignore_ranges.rb
282
+ - lib/steep/subtyping/cache.rb
283
+ - lib/steep/subtyping/check.rb
284
+ - lib/steep/subtyping/constraints.rb
285
+ - lib/steep/subtyping/relation.rb
286
+ - lib/steep/subtyping/result.rb
287
+ - lib/steep/subtyping/variable_variance.rb
288
+ - lib/steep/test.rb
289
+ - lib/steep/thread_waiter.rb
290
+ - lib/steep/type_construction.rb
291
+ - lib/steep/type_inference/block_params.rb
292
+ - lib/steep/type_inference/case_when.rb
293
+ - lib/steep/type_inference/constant_env.rb
294
+ - lib/steep/type_inference/context.rb
295
+ - lib/steep/type_inference/logic_type_interpreter.rb
296
+ - lib/steep/type_inference/method_call.rb
297
+ - lib/steep/type_inference/method_params.rb
298
+ - lib/steep/type_inference/multiple_assignment.rb
299
+ - lib/steep/type_inference/send_args.rb
300
+ - lib/steep/type_inference/type_env.rb
301
+ - lib/steep/type_inference/type_env_builder.rb
302
+ - lib/steep/typing.rb
303
+ - lib/steep/version.rb
304
+ - manual/annotations.md
305
+ - manual/ignore.md
306
+ - manual/ruby-diagnostics.md
307
+ - sample/Steepfile
308
+ - sample/lib/conference.rb
309
+ - sample/lib/length.rb
310
+ - sample/sig/conference.rbs
311
+ - sample/sig/generics.rbs
312
+ - sample/sig/length.rbs
313
+ - steep-relaxed.gemspec
314
+ homepage: https://github.com/rossta/steep-relaxed
315
+ licenses:
316
+ - MIT
317
+ metadata:
318
+ homepage_uri: https://github.com/rossta/steep-relaxed
319
+ source_code_uri: https://github.com/rossta/steep-relaxed
320
+ changelog_uri: https://github.com/rossta/steep-relaxed/blob/master/CHANGELOG.md
321
+ post_install_message:
322
+ rdoc_options: []
323
+ require_paths:
324
+ - lib
325
+ required_ruby_version: !ruby/object:Gem::Requirement
326
+ requirements:
327
+ - - ">="
328
+ - !ruby/object:Gem::Version
329
+ version: 3.1.0
330
+ required_rubygems_version: !ruby/object:Gem::Requirement
331
+ requirements:
332
+ - - ">="
333
+ - !ruby/object:Gem::Version
334
+ version: '0'
335
+ requirements: []
336
+ rubygems_version: 3.5.23
337
+ signing_key:
338
+ specification_version: 4
339
+ summary: Gradual Typing for Ruby
340
+ test_files: []