steep-activesupport-4 1.9.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 (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: []