steep-activesupport-4 1.9.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) 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/Steepfile +68 -0
  9. data/bin/console +14 -0
  10. data/bin/generate-diagnostics-docs.rb +112 -0
  11. data/bin/mem_graph.rb +67 -0
  12. data/bin/mem_prof.rb +102 -0
  13. data/bin/output_rebaseline.rb +34 -0
  14. data/bin/output_test.rb +60 -0
  15. data/bin/rbs +20 -0
  16. data/bin/rbs-inline +19 -0
  17. data/bin/setup +9 -0
  18. data/bin/stackprof_test.rb +19 -0
  19. data/bin/steep +19 -0
  20. data/bin/steep-check.rb +251 -0
  21. data/bin/steep-prof +16 -0
  22. data/doc/narrowing.md +195 -0
  23. data/doc/shape.md +194 -0
  24. data/exe/steep +18 -0
  25. data/guides/README.md +5 -0
  26. data/guides/src/gem-rbs-collection/gem-rbs-collection.md +126 -0
  27. data/guides/src/getting-started/getting-started.md +163 -0
  28. data/guides/src/nil-optional/nil-optional.md +195 -0
  29. data/lib/steep/annotation_parser.rb +199 -0
  30. data/lib/steep/ast/annotation/collection.rb +172 -0
  31. data/lib/steep/ast/annotation.rb +137 -0
  32. data/lib/steep/ast/builtin.rb +104 -0
  33. data/lib/steep/ast/ignore.rb +148 -0
  34. data/lib/steep/ast/node/type_application.rb +88 -0
  35. data/lib/steep/ast/node/type_assertion.rb +81 -0
  36. data/lib/steep/ast/types/any.rb +35 -0
  37. data/lib/steep/ast/types/boolean.rb +45 -0
  38. data/lib/steep/ast/types/bot.rb +35 -0
  39. data/lib/steep/ast/types/class.rb +43 -0
  40. data/lib/steep/ast/types/factory.rb +557 -0
  41. data/lib/steep/ast/types/helper.rb +40 -0
  42. data/lib/steep/ast/types/instance.rb +42 -0
  43. data/lib/steep/ast/types/intersection.rb +93 -0
  44. data/lib/steep/ast/types/literal.rb +59 -0
  45. data/lib/steep/ast/types/logic.rb +84 -0
  46. data/lib/steep/ast/types/name.rb +128 -0
  47. data/lib/steep/ast/types/nil.rb +41 -0
  48. data/lib/steep/ast/types/proc.rb +117 -0
  49. data/lib/steep/ast/types/record.rb +79 -0
  50. data/lib/steep/ast/types/self.rb +43 -0
  51. data/lib/steep/ast/types/shared_instance.rb +11 -0
  52. data/lib/steep/ast/types/top.rb +35 -0
  53. data/lib/steep/ast/types/tuple.rb +60 -0
  54. data/lib/steep/ast/types/union.rb +97 -0
  55. data/lib/steep/ast/types/var.rb +65 -0
  56. data/lib/steep/ast/types/void.rb +35 -0
  57. data/lib/steep/cli.rb +401 -0
  58. data/lib/steep/diagnostic/deprecated/else_on_exhaustive_case.rb +20 -0
  59. data/lib/steep/diagnostic/deprecated/unknown_constant_assigned.rb +28 -0
  60. data/lib/steep/diagnostic/helper.rb +18 -0
  61. data/lib/steep/diagnostic/lsp_formatter.rb +78 -0
  62. data/lib/steep/diagnostic/result_printer2.rb +48 -0
  63. data/lib/steep/diagnostic/ruby.rb +1221 -0
  64. data/lib/steep/diagnostic/signature.rb +570 -0
  65. data/lib/steep/drivers/annotations.rb +52 -0
  66. data/lib/steep/drivers/check.rb +339 -0
  67. data/lib/steep/drivers/checkfile.rb +210 -0
  68. data/lib/steep/drivers/diagnostic_printer.rb +105 -0
  69. data/lib/steep/drivers/init.rb +66 -0
  70. data/lib/steep/drivers/langserver.rb +56 -0
  71. data/lib/steep/drivers/print_project.rb +113 -0
  72. data/lib/steep/drivers/stats.rb +203 -0
  73. data/lib/steep/drivers/utils/driver_helper.rb +143 -0
  74. data/lib/steep/drivers/utils/jobs_option.rb +26 -0
  75. data/lib/steep/drivers/vendor.rb +27 -0
  76. data/lib/steep/drivers/watch.rb +194 -0
  77. data/lib/steep/drivers/worker.rb +58 -0
  78. data/lib/steep/equatable.rb +23 -0
  79. data/lib/steep/expectations.rb +228 -0
  80. data/lib/steep/index/rbs_index.rb +350 -0
  81. data/lib/steep/index/signature_symbol_provider.rb +185 -0
  82. data/lib/steep/index/source_index.rb +167 -0
  83. data/lib/steep/interface/block.rb +103 -0
  84. data/lib/steep/interface/builder.rb +843 -0
  85. data/lib/steep/interface/function.rb +1090 -0
  86. data/lib/steep/interface/method_type.rb +330 -0
  87. data/lib/steep/interface/shape.rb +239 -0
  88. data/lib/steep/interface/substitution.rb +159 -0
  89. data/lib/steep/interface/type_param.rb +115 -0
  90. data/lib/steep/located_value.rb +20 -0
  91. data/lib/steep/method_name.rb +42 -0
  92. data/lib/steep/module_helper.rb +24 -0
  93. data/lib/steep/node_helper.rb +273 -0
  94. data/lib/steep/path_helper.rb +30 -0
  95. data/lib/steep/project/dsl.rb +268 -0
  96. data/lib/steep/project/group.rb +31 -0
  97. data/lib/steep/project/options.rb +63 -0
  98. data/lib/steep/project/pattern.rb +59 -0
  99. data/lib/steep/project/target.rb +92 -0
  100. data/lib/steep/project.rb +78 -0
  101. data/lib/steep/rake_task.rb +132 -0
  102. data/lib/steep/range_extension.rb +29 -0
  103. data/lib/steep/server/base_worker.rb +97 -0
  104. data/lib/steep/server/change_buffer.rb +73 -0
  105. data/lib/steep/server/custom_methods.rb +77 -0
  106. data/lib/steep/server/delay_queue.rb +45 -0
  107. data/lib/steep/server/interaction_worker.rb +492 -0
  108. data/lib/steep/server/lsp_formatter.rb +455 -0
  109. data/lib/steep/server/master.rb +912 -0
  110. data/lib/steep/server/target_group_files.rb +205 -0
  111. data/lib/steep/server/type_check_controller.rb +366 -0
  112. data/lib/steep/server/type_check_worker.rb +303 -0
  113. data/lib/steep/server/work_done_progress.rb +64 -0
  114. data/lib/steep/server/worker_process.rb +176 -0
  115. data/lib/steep/services/completion_provider.rb +802 -0
  116. data/lib/steep/services/content_change.rb +61 -0
  117. data/lib/steep/services/file_loader.rb +74 -0
  118. data/lib/steep/services/goto_service.rb +441 -0
  119. data/lib/steep/services/hover_provider/rbs.rb +88 -0
  120. data/lib/steep/services/hover_provider/ruby.rb +221 -0
  121. data/lib/steep/services/hover_provider/singleton_methods.rb +20 -0
  122. data/lib/steep/services/path_assignment.rb +46 -0
  123. data/lib/steep/services/signature_help_provider.rb +202 -0
  124. data/lib/steep/services/signature_service.rb +428 -0
  125. data/lib/steep/services/stats_calculator.rb +68 -0
  126. data/lib/steep/services/type_check_service.rb +394 -0
  127. data/lib/steep/services/type_name_completion.rb +236 -0
  128. data/lib/steep/signature/validator.rb +651 -0
  129. data/lib/steep/source/ignore_ranges.rb +69 -0
  130. data/lib/steep/source.rb +691 -0
  131. data/lib/steep/subtyping/cache.rb +30 -0
  132. data/lib/steep/subtyping/check.rb +1113 -0
  133. data/lib/steep/subtyping/constraints.rb +341 -0
  134. data/lib/steep/subtyping/relation.rb +101 -0
  135. data/lib/steep/subtyping/result.rb +324 -0
  136. data/lib/steep/subtyping/variable_variance.rb +89 -0
  137. data/lib/steep/test.rb +9 -0
  138. data/lib/steep/thread_waiter.rb +43 -0
  139. data/lib/steep/type_construction.rb +5183 -0
  140. data/lib/steep/type_inference/block_params.rb +416 -0
  141. data/lib/steep/type_inference/case_when.rb +303 -0
  142. data/lib/steep/type_inference/constant_env.rb +56 -0
  143. data/lib/steep/type_inference/context.rb +195 -0
  144. data/lib/steep/type_inference/logic_type_interpreter.rb +613 -0
  145. data/lib/steep/type_inference/method_call.rb +193 -0
  146. data/lib/steep/type_inference/method_params.rb +531 -0
  147. data/lib/steep/type_inference/multiple_assignment.rb +194 -0
  148. data/lib/steep/type_inference/send_args.rb +712 -0
  149. data/lib/steep/type_inference/type_env.rb +341 -0
  150. data/lib/steep/type_inference/type_env_builder.rb +138 -0
  151. data/lib/steep/typing.rb +321 -0
  152. data/lib/steep/version.rb +3 -0
  153. data/lib/steep.rb +369 -0
  154. data/manual/annotations.md +181 -0
  155. data/manual/ignore.md +20 -0
  156. data/manual/ruby-diagnostics.md +1879 -0
  157. data/sample/Steepfile +22 -0
  158. data/sample/lib/conference.rb +49 -0
  159. data/sample/lib/length.rb +35 -0
  160. data/sample/sig/conference.rbs +42 -0
  161. data/sample/sig/generics.rbs +15 -0
  162. data/sample/sig/length.rbs +34 -0
  163. data/steep-activesupport-4.gemspec +55 -0
  164. metadata +437 -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,55 @@
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-activesupport-4"
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/soutaro/steep"
15
+ spec.license = 'MIT'
16
+
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = "https://github.com/soutaro/steep"
19
+ spec.metadata["changelog_uri"] = "https://github.com/soutaro/steep/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
+ spec.add_runtime_dependency "securerandom", ">= 0.1"
49
+ spec.add_runtime_dependency "json", ">= 2.1.0"
50
+ spec.add_runtime_dependency "logger", ">= 1.3.0"
51
+ spec.add_runtime_dependency "fileutils", ">= 1.1.0"
52
+ spec.add_runtime_dependency "strscan", ">= 1.0.0"
53
+ spec.add_runtime_dependency "csv", ">= 3.0.9"
54
+ spec.add_runtime_dependency "uri", ">= 0.12.0"
55
+ end
metadata ADDED
@@ -0,0 +1,437 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: steep-activesupport-4
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.9.3
5
+ platform: ruby
6
+ authors:
7
+ - Soutaro Matsumoto
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2025-01-23 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
+ - !ruby/object:Gem::Dependency
144
+ name: securerandom
145
+ requirement: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ version: '0.1'
150
+ type: :runtime
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: '0.1'
157
+ - !ruby/object:Gem::Dependency
158
+ name: json
159
+ requirement: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ version: 2.1.0
164
+ type: :runtime
165
+ prerelease: false
166
+ version_requirements: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - ">="
169
+ - !ruby/object:Gem::Version
170
+ version: 2.1.0
171
+ - !ruby/object:Gem::Dependency
172
+ name: logger
173
+ requirement: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: 1.3.0
178
+ type: :runtime
179
+ prerelease: false
180
+ version_requirements: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - ">="
183
+ - !ruby/object:Gem::Version
184
+ version: 1.3.0
185
+ - !ruby/object:Gem::Dependency
186
+ name: fileutils
187
+ requirement: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ version: 1.1.0
192
+ type: :runtime
193
+ prerelease: false
194
+ version_requirements: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ version: 1.1.0
199
+ - !ruby/object:Gem::Dependency
200
+ name: strscan
201
+ requirement: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - ">="
204
+ - !ruby/object:Gem::Version
205
+ version: 1.0.0
206
+ type: :runtime
207
+ prerelease: false
208
+ version_requirements: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: 1.0.0
213
+ - !ruby/object:Gem::Dependency
214
+ name: csv
215
+ requirement: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - ">="
218
+ - !ruby/object:Gem::Version
219
+ version: 3.0.9
220
+ type: :runtime
221
+ prerelease: false
222
+ version_requirements: !ruby/object:Gem::Requirement
223
+ requirements:
224
+ - - ">="
225
+ - !ruby/object:Gem::Version
226
+ version: 3.0.9
227
+ - !ruby/object:Gem::Dependency
228
+ name: uri
229
+ requirement: !ruby/object:Gem::Requirement
230
+ requirements:
231
+ - - ">="
232
+ - !ruby/object:Gem::Version
233
+ version: 0.12.0
234
+ type: :runtime
235
+ prerelease: false
236
+ version_requirements: !ruby/object:Gem::Requirement
237
+ requirements:
238
+ - - ">="
239
+ - !ruby/object:Gem::Version
240
+ version: 0.12.0
241
+ description: Gradual Typing for Ruby
242
+ email:
243
+ - matsumoto@soutaro.com
244
+ executables:
245
+ - steep
246
+ extensions: []
247
+ extra_rdoc_files: []
248
+ files:
249
+ - ".gitignore"
250
+ - ".gitmodules"
251
+ - CHANGELOG.md
252
+ - LICENSE
253
+ - README.md
254
+ - Rakefile
255
+ - Steepfile
256
+ - bin/console
257
+ - bin/generate-diagnostics-docs.rb
258
+ - bin/mem_graph.rb
259
+ - bin/mem_prof.rb
260
+ - bin/output_rebaseline.rb
261
+ - bin/output_test.rb
262
+ - bin/rbs
263
+ - bin/rbs-inline
264
+ - bin/setup
265
+ - bin/stackprof_test.rb
266
+ - bin/steep
267
+ - bin/steep-check.rb
268
+ - bin/steep-prof
269
+ - doc/narrowing.md
270
+ - doc/shape.md
271
+ - exe/steep
272
+ - guides/README.md
273
+ - guides/src/gem-rbs-collection/gem-rbs-collection.md
274
+ - guides/src/getting-started/getting-started.md
275
+ - guides/src/nil-optional/nil-optional.md
276
+ - lib/steep.rb
277
+ - lib/steep/annotation_parser.rb
278
+ - lib/steep/ast/annotation.rb
279
+ - lib/steep/ast/annotation/collection.rb
280
+ - lib/steep/ast/builtin.rb
281
+ - lib/steep/ast/ignore.rb
282
+ - lib/steep/ast/node/type_application.rb
283
+ - lib/steep/ast/node/type_assertion.rb
284
+ - lib/steep/ast/types/any.rb
285
+ - lib/steep/ast/types/boolean.rb
286
+ - lib/steep/ast/types/bot.rb
287
+ - lib/steep/ast/types/class.rb
288
+ - lib/steep/ast/types/factory.rb
289
+ - lib/steep/ast/types/helper.rb
290
+ - lib/steep/ast/types/instance.rb
291
+ - lib/steep/ast/types/intersection.rb
292
+ - lib/steep/ast/types/literal.rb
293
+ - lib/steep/ast/types/logic.rb
294
+ - lib/steep/ast/types/name.rb
295
+ - lib/steep/ast/types/nil.rb
296
+ - lib/steep/ast/types/proc.rb
297
+ - lib/steep/ast/types/record.rb
298
+ - lib/steep/ast/types/self.rb
299
+ - lib/steep/ast/types/shared_instance.rb
300
+ - lib/steep/ast/types/top.rb
301
+ - lib/steep/ast/types/tuple.rb
302
+ - lib/steep/ast/types/union.rb
303
+ - lib/steep/ast/types/var.rb
304
+ - lib/steep/ast/types/void.rb
305
+ - lib/steep/cli.rb
306
+ - lib/steep/diagnostic/deprecated/else_on_exhaustive_case.rb
307
+ - lib/steep/diagnostic/deprecated/unknown_constant_assigned.rb
308
+ - lib/steep/diagnostic/helper.rb
309
+ - lib/steep/diagnostic/lsp_formatter.rb
310
+ - lib/steep/diagnostic/result_printer2.rb
311
+ - lib/steep/diagnostic/ruby.rb
312
+ - lib/steep/diagnostic/signature.rb
313
+ - lib/steep/drivers/annotations.rb
314
+ - lib/steep/drivers/check.rb
315
+ - lib/steep/drivers/checkfile.rb
316
+ - lib/steep/drivers/diagnostic_printer.rb
317
+ - lib/steep/drivers/init.rb
318
+ - lib/steep/drivers/langserver.rb
319
+ - lib/steep/drivers/print_project.rb
320
+ - lib/steep/drivers/stats.rb
321
+ - lib/steep/drivers/utils/driver_helper.rb
322
+ - lib/steep/drivers/utils/jobs_option.rb
323
+ - lib/steep/drivers/vendor.rb
324
+ - lib/steep/drivers/watch.rb
325
+ - lib/steep/drivers/worker.rb
326
+ - lib/steep/equatable.rb
327
+ - lib/steep/expectations.rb
328
+ - lib/steep/index/rbs_index.rb
329
+ - lib/steep/index/signature_symbol_provider.rb
330
+ - lib/steep/index/source_index.rb
331
+ - lib/steep/interface/block.rb
332
+ - lib/steep/interface/builder.rb
333
+ - lib/steep/interface/function.rb
334
+ - lib/steep/interface/method_type.rb
335
+ - lib/steep/interface/shape.rb
336
+ - lib/steep/interface/substitution.rb
337
+ - lib/steep/interface/type_param.rb
338
+ - lib/steep/located_value.rb
339
+ - lib/steep/method_name.rb
340
+ - lib/steep/module_helper.rb
341
+ - lib/steep/node_helper.rb
342
+ - lib/steep/path_helper.rb
343
+ - lib/steep/project.rb
344
+ - lib/steep/project/dsl.rb
345
+ - lib/steep/project/group.rb
346
+ - lib/steep/project/options.rb
347
+ - lib/steep/project/pattern.rb
348
+ - lib/steep/project/target.rb
349
+ - lib/steep/rake_task.rb
350
+ - lib/steep/range_extension.rb
351
+ - lib/steep/server/base_worker.rb
352
+ - lib/steep/server/change_buffer.rb
353
+ - lib/steep/server/custom_methods.rb
354
+ - lib/steep/server/delay_queue.rb
355
+ - lib/steep/server/interaction_worker.rb
356
+ - lib/steep/server/lsp_formatter.rb
357
+ - lib/steep/server/master.rb
358
+ - lib/steep/server/target_group_files.rb
359
+ - lib/steep/server/type_check_controller.rb
360
+ - lib/steep/server/type_check_worker.rb
361
+ - lib/steep/server/work_done_progress.rb
362
+ - lib/steep/server/worker_process.rb
363
+ - lib/steep/services/completion_provider.rb
364
+ - lib/steep/services/content_change.rb
365
+ - lib/steep/services/file_loader.rb
366
+ - lib/steep/services/goto_service.rb
367
+ - lib/steep/services/hover_provider/rbs.rb
368
+ - lib/steep/services/hover_provider/ruby.rb
369
+ - lib/steep/services/hover_provider/singleton_methods.rb
370
+ - lib/steep/services/path_assignment.rb
371
+ - lib/steep/services/signature_help_provider.rb
372
+ - lib/steep/services/signature_service.rb
373
+ - lib/steep/services/stats_calculator.rb
374
+ - lib/steep/services/type_check_service.rb
375
+ - lib/steep/services/type_name_completion.rb
376
+ - lib/steep/signature/validator.rb
377
+ - lib/steep/source.rb
378
+ - lib/steep/source/ignore_ranges.rb
379
+ - lib/steep/subtyping/cache.rb
380
+ - lib/steep/subtyping/check.rb
381
+ - lib/steep/subtyping/constraints.rb
382
+ - lib/steep/subtyping/relation.rb
383
+ - lib/steep/subtyping/result.rb
384
+ - lib/steep/subtyping/variable_variance.rb
385
+ - lib/steep/test.rb
386
+ - lib/steep/thread_waiter.rb
387
+ - lib/steep/type_construction.rb
388
+ - lib/steep/type_inference/block_params.rb
389
+ - lib/steep/type_inference/case_when.rb
390
+ - lib/steep/type_inference/constant_env.rb
391
+ - lib/steep/type_inference/context.rb
392
+ - lib/steep/type_inference/logic_type_interpreter.rb
393
+ - lib/steep/type_inference/method_call.rb
394
+ - lib/steep/type_inference/method_params.rb
395
+ - lib/steep/type_inference/multiple_assignment.rb
396
+ - lib/steep/type_inference/send_args.rb
397
+ - lib/steep/type_inference/type_env.rb
398
+ - lib/steep/type_inference/type_env_builder.rb
399
+ - lib/steep/typing.rb
400
+ - lib/steep/version.rb
401
+ - manual/annotations.md
402
+ - manual/ignore.md
403
+ - manual/ruby-diagnostics.md
404
+ - sample/Steepfile
405
+ - sample/lib/conference.rb
406
+ - sample/lib/length.rb
407
+ - sample/sig/conference.rbs
408
+ - sample/sig/generics.rbs
409
+ - sample/sig/length.rbs
410
+ - steep-activesupport-4.gemspec
411
+ homepage: https://github.com/soutaro/steep
412
+ licenses:
413
+ - MIT
414
+ metadata:
415
+ homepage_uri: https://github.com/soutaro/steep
416
+ source_code_uri: https://github.com/soutaro/steep
417
+ changelog_uri: https://github.com/soutaro/steep/blob/master/CHANGELOG.md
418
+ post_install_message:
419
+ rdoc_options: []
420
+ require_paths:
421
+ - lib
422
+ required_ruby_version: !ruby/object:Gem::Requirement
423
+ requirements:
424
+ - - ">="
425
+ - !ruby/object:Gem::Version
426
+ version: 3.1.0
427
+ required_rubygems_version: !ruby/object:Gem::Requirement
428
+ requirements:
429
+ - - ">="
430
+ - !ruby/object:Gem::Version
431
+ version: '0'
432
+ requirements: []
433
+ rubygems_version: 3.5.16
434
+ signing_key:
435
+ specification_version: 4
436
+ summary: Gradual Typing for Ruby
437
+ test_files: []