steep 1.3.2 → 1.4.0.dev.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4488ddc9f6e388132b1d4374f9b4f2dee9734c34e52722ab37bd45fcebde18c3
4
- data.tar.gz: cfe30e4ea54236963c817b4b6116958cc00a83c7f437710088142f824e22a71f
3
+ metadata.gz: bdccb93c5fd95bbc2e6af98021d0beadfb7aab30f3b398cb9e8414d5ea0e6f38
4
+ data.tar.gz: 6dfab6ba13555e6a6c37c69950383e1e7608c21bc26eacf1a695de91a5fe6293
5
5
  SHA512:
6
- metadata.gz: ddfe4cdfba9565e665bf653e223bb67f2ba42e67362e1100c1e07adc04d901621a02f5097fbbfd2cb325eff190fb319b2369b6fa06fc5426187fd50944ac205c
7
- data.tar.gz: 0454cd32ed4d01f2bf6b7b537eb02851c101dfde4687f9643799f1f6ba6bf567d523b7a49c480cc3c8cc15273651d0ad47f718f2c82d132cf8fabd3427c99d73
6
+ metadata.gz: c09f6cd8780f428305edc405885c4080816470c05815515c8005e368532146b1e99e939699b3ff835d6909a2beeae074e38b79a1c8e2121652d008fc2f759316
7
+ data.tar.gz: a579bca90d0a7cd5a689068e7de97ca2d5ac9d7d40ccd291d2b61df57f519997bbf8c3e376904b4369c256aac75b62a5ee89915940436ded62c68212a4926e50
data/CHANGELOG.md CHANGED
@@ -2,18 +2,6 @@
2
2
 
3
3
  ## master
4
4
 
5
- ## 1.3.2 (2023-03-17)
6
-
7
- ### Miscellaneous
8
-
9
- * Remove pathname from runtime_dependency ([#740](https://github.com/soutaro/steep/pull/740))
10
-
11
- ## 1.3.1 (2023-03-08)
12
-
13
- ### Miscellaneous
14
-
15
- * Require rbs-2.8.x ([#732](https://github.com/soutaro/steep/pull/732))
16
-
17
5
  ## 1.3.0 (2022-11-25)
18
6
 
19
7
  ### Type checker core
data/Gemfile CHANGED
@@ -3,6 +3,8 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in steep.gemspec
4
4
  gemspec
5
5
 
6
+ gem "rbs", "~>3.0.0.dev"
7
+
6
8
  gem "rake"
7
9
  gem "minitest", "~> 5.16"
8
10
  gem "minitest-hooks"
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- steep (1.3.2)
4
+ steep (1.4.0.dev.1)
5
5
  activesupport (>= 5.1)
6
6
  csv (>= 3.0.9)
7
7
  fileutils (>= 1.1.0)
@@ -11,8 +11,9 @@ PATH
11
11
  logger (>= 1.3.0)
12
12
  parallel (>= 1.0.0)
13
13
  parser (>= 3.1)
14
+ pathname (>= 0.2.1)
14
15
  rainbow (>= 2.2.2, < 4.0)
15
- rbs (~> 2.8.0)
16
+ rbs (>= 2.8.0)
16
17
  securerandom (>= 0.1)
17
18
  strscan (>= 1.0.0)
18
19
  terminal-table (>= 2, < 4)
@@ -20,13 +21,13 @@ PATH
20
21
  GEM
21
22
  remote: https://rubygems.org/
22
23
  specs:
23
- activesupport (7.0.4.3)
24
+ activesupport (7.0.4)
24
25
  concurrent-ruby (~> 1.0, >= 1.0.2)
25
26
  i18n (>= 1.6, < 2)
26
27
  minitest (>= 5.1)
27
28
  tzinfo (~> 2.0)
28
29
  ast (2.4.2)
29
- concurrent-ruby (1.2.2)
30
+ concurrent-ruby (1.1.10)
30
31
  csv (3.2.6)
31
32
  debase (0.2.5.beta2)
32
33
  debase-ruby_core_source (>= 0.10.12)
@@ -36,8 +37,8 @@ GEM
36
37
  i18n (1.12.0)
37
38
  concurrent-ruby (~> 1.0)
38
39
  json (2.6.3)
39
- language_server-protocol (3.17.0.3)
40
- listen (3.8.0)
40
+ language_server-protocol (3.17.0.2)
41
+ listen (3.7.1)
41
42
  rb-fsevent (~> 0.10, >= 0.10.3)
42
43
  rb-inotify (~> 0.9, >= 0.9.10)
43
44
  logger (1.5.3)
@@ -47,22 +48,23 @@ GEM
47
48
  minitest-slow_test (0.2.0)
48
49
  minitest (>= 5.0)
49
50
  parallel (1.22.1)
50
- parser (3.2.1.1)
51
+ parser (3.2.0.0)
51
52
  ast (~> 2.4.1)
53
+ pathname (0.2.1)
52
54
  rainbow (3.1.1)
53
55
  rake (13.0.6)
54
56
  rb-fsevent (0.11.2)
55
57
  rb-inotify (0.10.1)
56
58
  ffi (~> 1.0)
57
- rbs (2.8.4)
59
+ rbs (3.0.0.dev.1)
58
60
  ruby-debug-ide (0.7.3)
59
61
  rake (>= 0.8.1)
60
62
  securerandom (0.2.2)
61
63
  stackprof (0.2.23)
62
- strscan (3.0.6)
64
+ strscan (3.0.5)
63
65
  terminal-table (3.0.2)
64
66
  unicode-display_width (>= 1.1.1, < 3)
65
- tzinfo (2.0.6)
67
+ tzinfo (2.0.5)
66
68
  concurrent-ruby (~> 1.0)
67
69
  unicode-display_width (2.4.2)
68
70
 
@@ -75,6 +77,7 @@ DEPENDENCIES
75
77
  minitest-hooks
76
78
  minitest-slow_test
77
79
  rake
80
+ rbs (~> 3.0.0.dev)
78
81
  ruby-debug-ide
79
82
  stackprof
80
83
  steep!
data/Gemfile.steep CHANGED
@@ -1,3 +1,4 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem 'steep', '~> 1.3.0.pre'
3
+ gem 'steep', '~> 1.3.0'
4
+ gem "rbs", "~> 3.0.0.dev"
data/Gemfile.steep.lock CHANGED
@@ -27,9 +27,9 @@ GEM
27
27
  rb-fsevent (0.11.2)
28
28
  rb-inotify (0.10.1)
29
29
  ffi (~> 1.0)
30
- rbs (2.8.0)
30
+ rbs (3.0.0.dev.1)
31
31
  securerandom (0.2.0)
32
- steep (1.3.0.pre.2)
32
+ steep (1.3.0)
33
33
  activesupport (>= 5.1)
34
34
  csv (>= 3.0.9)
35
35
  fileutils (>= 1.1.0)
@@ -40,7 +40,7 @@ GEM
40
40
  parallel (>= 1.0.0)
41
41
  parser (>= 3.1)
42
42
  rainbow (>= 2.2.2, < 4.0)
43
- rbs (>= 2.8.0.pre)
43
+ rbs (>= 2.8.0)
44
44
  securerandom (>= 0.1)
45
45
  strscan (>= 1.0.0)
46
46
  terminal-table (>= 2, < 4)
@@ -55,7 +55,8 @@ PLATFORMS
55
55
  arm64-darwin-21
56
56
 
57
57
  DEPENDENCIES
58
- steep (~> 1.3.0.pre)
58
+ rbs (~> 3.0.0.dev)
59
+ steep (~> 1.3.0)
59
60
 
60
61
  BUNDLED WITH
61
62
  2.3.15
@@ -148,7 +148,7 @@ module Steep
148
148
  end
149
149
 
150
150
  def each_entry(&block)
151
- if block_given?
151
+ if block
152
152
  type_index.each_value(&block)
153
153
  method_index.each_value(&block)
154
154
  const_index.each_value(&block)
@@ -176,7 +176,7 @@ module Steep
176
176
 
177
177
  def each_declaration(type_name: nil, method_name: nil, const_name: nil, global_name: nil, &block)
178
178
  if block
179
- entry = entry(type_name: type_name, method_name: method_name, const_name: const_name, global_name: global_name)
179
+ entry = __skip__ = entry(type_name: type_name, method_name: method_name, const_name: const_name, global_name: global_name)
180
180
  entry.declarations.each(&block)
181
181
  else
182
182
  enum_for(:each_declaration, type_name: type_name, method_name: method_name, const_name: const_name, global_name: global_name)
@@ -187,9 +187,12 @@ module Steep
187
187
  entry(type_name: type_name).add_reference(ref)
188
188
  end
189
189
 
190
- def each_reference(type_name: nil, &block)
190
+ def each_reference(type_name:, &block)
191
191
  if block
192
- entry(type_name: type_name).references.each(&block)
192
+ case
193
+ when type_name
194
+ entry(type_name: type_name).references.each(&block)
195
+ end
193
196
  else
194
197
  enum_for(:each_reference, type_name: type_name)
195
198
  end
@@ -205,8 +208,8 @@ module Steep
205
208
  def member(type_name, member)
206
209
  case member
207
210
  when RBS::AST::Members::MethodDefinition
208
- member.types.each do |method_type|
209
- method_type.each_type do |type|
211
+ member.overloads.each do |overload|
212
+ overload.method_type.each_type do |type|
210
213
  type_reference type, from: member
211
214
  end
212
215
  end
@@ -230,6 +233,8 @@ module Steep
230
233
  InstanceMethodName.new(type_name: type_name, method_name: member.name)
231
234
  when :singleton
232
235
  SingletonMethodName.new(type_name: type_name, method_name: member.name)
236
+ else
237
+ raise
233
238
  end
234
239
  index.add_method_declaration(method_name, member)
235
240
  end
@@ -240,6 +245,8 @@ module Steep
240
245
  InstanceMethodName.new(type_name: type_name, method_name: "#{member.name}=".to_sym)
241
246
  when :singleton
242
247
  SingletonMethodName.new(type_name: type_name, method_name: "#{member.name}=".to_sym)
248
+ else
249
+ raise
243
250
  end
244
251
  index.add_method_declaration(method_name, member)
245
252
  end
@@ -172,8 +172,12 @@ module Steep
172
172
  yield code_diagnostics_config if block_given?
173
173
  end
174
174
 
175
+ def project!
176
+ project or raise "TargetDSL doesn't have project (#{name})"
177
+ end
178
+
175
179
  def collection_config(path)
176
- @collection_config_path = project.absolute_path(path)
180
+ @collection_config_path = project!.absolute_path(path)
177
181
  end
178
182
 
179
183
  def disable_collection
@@ -196,7 +200,6 @@ module Steep
196
200
 
197
201
  def initialize(project:)
198
202
  @project = project
199
- @global_signatures = []
200
203
  end
201
204
 
202
205
  def self.register_template(name, target)
@@ -218,13 +221,18 @@ module Steep
218
221
  end
219
222
 
220
223
  Steep.logger.tagged "target=#{name}" do
221
- target.instance_eval(&block) if block_given?
224
+ target.instance_eval(&block) if block
222
225
  end
223
226
 
224
227
  source_pattern = Pattern.new(patterns: target.sources, ignores: target.ignored_sources, ext: ".rb")
225
228
  signature_pattern = Pattern.new(patterns: target.signatures, ext: ".rbs")
226
229
 
227
- collection_lock = target.collection_config_path&.then { |p| RBS::Collection::Config.lockfile_of(p) }
230
+
231
+ if config_path = target.collection_config_path
232
+ lockfile_path = RBS::Collection::Config.to_lockfile_path(config_path)
233
+ content = YAML.load_file(lockfile_path.to_s)
234
+ collection_lock = RBS::Collection::Config::Lockfile.from_lockfile(lockfile_path: lockfile_path, data: content)
235
+ end
228
236
 
229
237
  Project::Target.new(
230
238
  name: target.name,
@@ -1,7 +1,9 @@
1
1
  module Steep
2
2
  class Project
3
3
  class Options
4
- PathOptions = Struct.new(:core_root, :stdlib_root, :repo_paths, keyword_init: true) do
4
+ PathOptions = _ = Struct.new(:core_root, :stdlib_root, :repo_paths, keyword_init: true) do
5
+ # @implements PathOptions
6
+
5
7
  def customized_stdlib?
6
8
  stdlib_root != nil
7
9
  end
data/lib/steep/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Steep
2
- VERSION = "1.3.2"
2
+ VERSION = "1.4.0.dev.1"
3
3
  end
@@ -1,29 +1,18 @@
1
1
  ---
2
2
  sources:
3
- - name: ruby/gem_rbs_collection
3
+ - type: git
4
+ name: ruby/gem_rbs_collection
5
+ revision: 6f9f54a753a78c505e63e7f31a48b3f71f1b510d
4
6
  remote: https://github.com/ruby/gem_rbs_collection.git
5
- revision: main
6
7
  repo_dir: gems
7
8
  path: ".gem_rbs_collection"
8
9
  gems:
9
- - name: set
10
- version: '0'
11
- source:
12
- type: stdlib
13
- - name: rbs
14
- version: 2.8.0
15
- source:
16
- type: rubygems
17
- - name: dbm
18
- version: '0'
19
- source:
20
- type: stdlib
21
10
  - name: activesupport
22
- version: '7.0'
11
+ version: '6.0'
23
12
  source:
24
13
  type: git
25
14
  name: ruby/gem_rbs_collection
26
- revision: 3cdcbea7f7a2a2ba5dffce3ee71f938f8b301687
15
+ revision: 6f9f54a753a78c505e63e7f31a48b3f71f1b510d
27
16
  remote: https://github.com/ruby/gem_rbs_collection.git
28
17
  repo_dir: gems
29
18
  - name: ast
@@ -31,31 +20,35 @@ gems:
31
20
  source:
32
21
  type: git
33
22
  name: ruby/gem_rbs_collection
34
- revision: 3cdcbea7f7a2a2ba5dffce3ee71f938f8b301687
35
- remote: https://github.com/ruby/gem_rbs_collection.git
36
- repo_dir: gems
37
- - name: concurrent-ruby
38
- version: '1.1'
39
- source:
40
- type: git
41
- name: ruby/gem_rbs_collection
42
- revision: 8f2be26c03ad81a7124927ebc4f8e066ba94b92b
23
+ revision: 6f9f54a753a78c505e63e7f31a48b3f71f1b510d
43
24
  remote: https://github.com/ruby/gem_rbs_collection.git
44
25
  repo_dir: gems
45
26
  - name: csv
46
27
  version: '0'
47
28
  source:
48
29
  type: stdlib
30
+ - name: date
31
+ version: '0'
32
+ source:
33
+ type: stdlib
34
+ - name: dbm
35
+ version: '0'
36
+ source:
37
+ type: stdlib
49
38
  - name: fileutils
50
39
  version: '0'
51
40
  source:
52
41
  type: stdlib
42
+ - name: forwardable
43
+ version: '0'
44
+ source:
45
+ type: stdlib
53
46
  - name: i18n
54
47
  version: '1.10'
55
48
  source:
56
49
  type: git
57
50
  name: ruby/gem_rbs_collection
58
- revision: 3cdcbea7f7a2a2ba5dffce3ee71f938f8b301687
51
+ revision: 6f9f54a753a78c505e63e7f31a48b3f71f1b510d
59
52
  remote: https://github.com/ruby/gem_rbs_collection.git
60
53
  repo_dir: gems
61
54
  - name: json
@@ -67,7 +60,7 @@ gems:
67
60
  source:
68
61
  type: git
69
62
  name: ruby/gem_rbs_collection
70
- revision: 3cdcbea7f7a2a2ba5dffce3ee71f938f8b301687
63
+ revision: 6f9f54a753a78c505e63e7f31a48b3f71f1b510d
71
64
  remote: https://github.com/ruby/gem_rbs_collection.git
72
65
  repo_dir: gems
73
66
  - name: logger
@@ -78,59 +71,59 @@ gems:
78
71
  version: '0'
79
72
  source:
80
73
  type: stdlib
74
+ - name: monitor
75
+ version: '0'
76
+ source:
77
+ type: stdlib
78
+ - name: mutex_m
79
+ version: '0'
80
+ source:
81
+ type: stdlib
82
+ - name: optparse
83
+ version: '0'
84
+ source:
85
+ type: stdlib
81
86
  - name: parallel
82
87
  version: '1.20'
83
88
  source:
84
89
  type: git
85
90
  name: ruby/gem_rbs_collection
86
- revision: 3cdcbea7f7a2a2ba5dffce3ee71f938f8b301687
91
+ revision: 6f9f54a753a78c505e63e7f31a48b3f71f1b510d
87
92
  remote: https://github.com/ruby/gem_rbs_collection.git
88
93
  repo_dir: gems
94
+ - name: pathname
95
+ version: '0'
96
+ source:
97
+ type: stdlib
89
98
  - name: rainbow
90
99
  version: '3.0'
91
100
  source:
92
101
  type: git
93
102
  name: ruby/gem_rbs_collection
94
- revision: 3cdcbea7f7a2a2ba5dffce3ee71f938f8b301687
103
+ revision: 6f9f54a753a78c505e63e7f31a48b3f71f1b510d
95
104
  remote: https://github.com/ruby/gem_rbs_collection.git
96
105
  repo_dir: gems
97
- - name: securerandom
98
- version: '0'
99
- source:
100
- type: stdlib
101
- - name: strscan
102
- version: '0'
103
- source:
104
- type: stdlib
105
- - name: pathname
106
- version: '0'
107
- source:
108
- type: stdlib
109
- - name: optparse
110
- version: '0'
111
- source:
112
- type: stdlib
113
- - name: tsort
114
- version: '0'
106
+ - name: rbs
107
+ version: 3.0.0.dev.1
115
108
  source:
116
- type: stdlib
109
+ type: rubygems
117
110
  - name: rdoc
118
111
  version: '0'
119
112
  source:
120
113
  type: stdlib
121
- - name: date
114
+ - name: securerandom
122
115
  version: '0'
123
116
  source:
124
117
  type: stdlib
125
- - name: monitor
118
+ - name: set
126
119
  version: '0'
127
120
  source:
128
121
  type: stdlib
129
- - name: mutex_m
122
+ - name: singleton
130
123
  version: '0'
131
124
  source:
132
125
  type: stdlib
133
- - name: singleton
126
+ - name: strscan
134
127
  version: '0'
135
128
  source:
136
129
  type: stdlib
@@ -138,7 +131,7 @@ gems:
138
131
  version: '0'
139
132
  source:
140
133
  type: stdlib
141
- - name: forwardable
134
+ - name: tsort
142
135
  version: '0'
143
136
  source:
144
137
  type: stdlib
@@ -2,89 +2,135 @@ module Steep
2
2
  module Index
3
3
  class RBSIndex
4
4
  class TypeEntry
5
- attr_reader type_name: untyped
5
+ attr_reader type_name: RBS::TypeName
6
6
 
7
- attr_reader declarations: untyped
7
+ type decl = RBS::AST::Declarations::Class
8
+ | RBS::AST::Declarations::Module
9
+ | RBS::AST::Declarations::Interface
10
+ | RBS::AST::Declarations::Alias
8
11
 
9
- attr_reader references: untyped
12
+ type ref = RBS::AST::Members::MethodDefinition
13
+ | RBS::AST::Members::AttrWriter
14
+ | RBS::AST::Members::AttrReader
15
+ | RBS::AST::Members::AttrAccessor
16
+ | RBS::AST::Members::Include
17
+ | RBS::AST::Members::Extend
18
+ | RBS::AST::Members::InstanceVariable
19
+ | RBS::AST::Members::ClassVariable
20
+ | RBS::AST::Members::ClassInstanceVariable
21
+ | RBS::AST::Declarations::Module
22
+ | RBS::AST::Declarations::Class
23
+ | RBS::AST::Declarations::Constant
24
+ | RBS::AST::Declarations::Global
25
+ | RBS::AST::Declarations::Alias
10
26
 
11
- def initialize: (type_name: untyped) -> void
27
+ attr_reader declarations: Set[decl]
12
28
 
13
- def add_declaration: (untyped decl) -> untyped
29
+ attr_reader references: Set[ref]
14
30
 
15
- def add_reference: (untyped ref) -> untyped
31
+ def initialize: (type_name: RBS::TypeName) -> void
32
+
33
+ def add_declaration: (decl decl) -> self
34
+
35
+ def add_reference: (ref) -> self
16
36
  end
17
37
 
18
38
  class MethodEntry
19
- attr_reader method_name: untyped
39
+ attr_reader method_name: method_name
40
+
41
+ type decl = RBS::AST::Members::MethodDefinition
42
+ | RBS::AST::Members::Alias
43
+ | RBS::AST::Members::AttrWriter
44
+ | RBS::AST::Members::AttrReader
45
+ | RBS::AST::Members::AttrAccessor
20
46
 
21
- attr_reader declarations: untyped
47
+ type ref = RBS::AST::Members::Alias
22
48
 
23
- attr_reader references: untyped
49
+ attr_reader declarations: Set[decl]
24
50
 
25
- def initialize: (method_name: untyped) -> void
51
+ attr_reader references: Set[ref]
26
52
 
27
- def add_declaration: (untyped decl) -> untyped
53
+ def initialize: (method_name: method_name) -> void
54
+
55
+ def add_declaration: (decl) -> self
28
56
  end
29
57
 
30
58
  class ConstantEntry
31
- attr_reader const_name: untyped
59
+ attr_reader const_name: RBS::TypeName
60
+
61
+ type decl = RBS::AST::Declarations::Constant
32
62
 
33
- attr_reader declarations: untyped
63
+ attr_reader declarations: Set[decl]
34
64
 
35
- def initialize: (const_name: untyped) -> void
65
+ def initialize: (const_name: RBS::TypeName) -> void
36
66
 
37
- def add_declaration: (untyped decl) -> untyped
67
+ def add_declaration: (decl) -> self
38
68
  end
39
69
 
40
70
  class GlobalEntry
41
- attr_reader global_name: untyped
71
+ attr_reader global_name: Symbol
72
+
73
+ type decl = RBS::AST::Declarations::Global
42
74
 
43
- attr_reader declarations: untyped
75
+ attr_reader declarations: Set[decl]
44
76
 
45
- def initialize: (global_name: untyped) -> void
77
+ def initialize: (global_name: Symbol) -> void
46
78
 
47
- def add_declaration: (untyped decl) -> untyped
79
+ def add_declaration: (decl) -> self
48
80
  end
49
81
 
50
- attr_reader type_index: untyped
82
+ attr_reader type_index: Hash[RBS::TypeName, TypeEntry]
51
83
 
52
- attr_reader method_index: untyped
84
+ attr_reader method_index: Hash[method_name, MethodEntry]
53
85
 
54
- attr_reader const_index: untyped
86
+ attr_reader const_index: Hash[RBS::TypeName, ConstantEntry]
55
87
 
56
- attr_reader global_index: untyped
88
+ attr_reader global_index: Hash[Symbol, GlobalEntry]
57
89
 
58
90
  def initialize: () -> void
59
91
 
60
- def entry: (?type_name: untyped?, ?method_name: untyped?, ?const_name: untyped?, ?global_name: untyped?) -> untyped
92
+ def entry: (type_name: RBS::TypeName) -> TypeEntry
93
+ | (method_name: method_name) -> MethodEntry
94
+ | (const_name: RBS::TypeName) -> ConstantEntry
95
+ | (global_name: Symbol) -> GlobalEntry
61
96
 
62
- def each_entry: () { () -> untyped } -> untyped
97
+ def each_entry: () { (TypeEntry | MethodEntry | ConstantEntry | GlobalEntry) -> void } -> void
98
+ | () -> Enumerator[TypeEntry | MethodEntry | ConstantEntry | GlobalEntry, void]
63
99
 
64
- def add_type_declaration: (untyped type_name, untyped declaration) -> untyped
100
+ def add_type_declaration: (RBS::TypeName type_name, TypeEntry::decl declaration) -> TypeEntry
65
101
 
66
- def add_method_declaration: (untyped method_name, untyped member) -> untyped
102
+ def add_method_declaration: (method_name, MethodEntry::decl member) -> MethodEntry
67
103
 
68
- def add_constant_declaration: (untyped const_name, untyped decl) -> untyped
104
+ def add_constant_declaration: (RBS::TypeName const_name, ConstantEntry::decl decl) -> ConstantEntry
69
105
 
70
- def add_global_declaration: (untyped global_name, untyped decl) -> untyped
106
+ def add_global_declaration: (Symbol global_name, GlobalEntry::decl decl) -> GlobalEntry
71
107
 
72
- def each_declaration: (?type_name: untyped?, ?method_name: untyped?, ?const_name: untyped?, ?global_name: untyped?) { () -> untyped } -> untyped
108
+ def each_declaration: (type_name: RBS::TypeName) { (TypeEntry) -> void } -> void
109
+ | (type_name: RBS::TypeName) -> Enumerator[TypeEntry, void]
110
+ | (method_name: method_name) { (MethodEntry) -> void } -> void
111
+ | (method_name: method_name) -> Enumerator[MethodEntry, void]
112
+ | (const_name: RBS::TypeName) { (ConstantEntry) -> void } -> void
113
+ | (const_name: RBS::TypeName) -> Enumerator[ConstantEntry, void]
114
+ | (global_name: Symbol) { (GlobalEntry) -> void } -> void
115
+ | (global_name: Symbol) -> Enumerator[GlobalEntry, void]
73
116
 
74
- def add_type_reference: (untyped type_name, untyped ref) -> untyped
117
+ # `type_name` is referred from `ref`
118
+ #
119
+ def add_type_reference: (RBS::TypeName type_name, TypeEntry::ref ref) -> TypeEntry
75
120
 
76
- def each_reference: (?type_name: untyped?) { () -> untyped } -> untyped
121
+ def each_reference: (type_name: RBS::TypeName) { (TypeEntry::ref) -> void } -> void
122
+ | (type_name: RBS::TypeName) -> Enumerator[TypeEntry::ref, void]
77
123
 
78
124
  class Builder
79
- attr_reader index: untyped
125
+ attr_reader index: RBSIndex
80
126
 
81
- def initialize: (index: untyped) -> void
127
+ def initialize: (index: RBSIndex) -> void
82
128
 
83
- def member: (untyped type_name, untyped member) -> untyped
129
+ def member: (RBS::TypeName type_name, RBS::AST::Members::t | RBS::AST::Declarations::t member) -> void
84
130
 
85
- def type_reference: (untyped `type`, from: untyped) -> untyped
131
+ def type_reference: (RBS::Types::t, from: TypeEntry::ref) -> void
86
132
 
87
- def env: (untyped env) -> untyped
133
+ def env: (RBS::Environment env) -> void
88
134
  end
89
135
  end
90
136
  end
@@ -2,53 +2,55 @@ module Steep
2
2
  class Project
3
3
  class DSL
4
4
  class TargetDSL
5
- attr_reader name: untyped
5
+ attr_reader name: Symbol
6
6
 
7
- attr_reader sources: untyped
7
+ attr_reader sources: Array[String]
8
8
 
9
- attr_reader libraries: untyped
9
+ attr_reader libraries: Array[String]
10
10
 
11
- attr_reader signatures: untyped
11
+ attr_reader signatures: Array[String]
12
12
 
13
- attr_reader ignored_sources: untyped
13
+ attr_reader ignored_sources: Array[String]
14
14
 
15
- attr_reader stdlib_root: untyped
15
+ attr_reader stdlib_root: Pathname?
16
16
 
17
- attr_reader core_root: untyped
17
+ attr_reader core_root: Pathname?
18
18
 
19
- attr_reader repo_paths: untyped
19
+ attr_reader repo_paths: Array[Pathname]
20
20
 
21
21
  attr_reader code_diagnostics_config: untyped
22
22
 
23
- attr_reader project: untyped
23
+ attr_reader project: Project?
24
24
 
25
- attr_reader collection_config_path: untyped
25
+ attr_reader collection_config_path: Pathname?
26
26
 
27
27
  NONE: untyped
28
28
 
29
- def initialize: (untyped name, ?sources: untyped, ?libraries: untyped, ?signatures: untyped, ?ignored_sources: untyped, ?repo_paths: untyped, ?code_diagnostics_config: ::Hash[untyped, untyped], ?project: untyped?, ?collection_config_path: untyped) -> void
29
+ def project!: () -> Project
30
30
 
31
- def initialize_copy: (untyped other) -> untyped
31
+ def initialize: (Symbol name, ?sources: Array[String], ?libraries: Array[String], ?signatures: Array[String], ?ignored_sources: Array[String], ?repo_paths: Array[Pathname], ?code_diagnostics_config: ::Hash[untyped, untyped], ?project: Project?, ?collection_config_path: Pathname?) -> void
32
32
 
33
- def check: (*untyped args) -> untyped
33
+ def initialize_copy: (instance other) -> void
34
34
 
35
- def ignore: (*untyped args) -> untyped
35
+ def check: (*String args) -> void
36
36
 
37
- def library: (*untyped args) -> untyped
37
+ def ignore: (*String args) -> void
38
38
 
39
- def typing_options: (?untyped? level, **untyped hash) -> untyped
39
+ def library: (*String args) -> void
40
40
 
41
- def signature: (*untyped args) -> untyped
41
+ def typing_options: (?untyped level, **untyped hash) -> void
42
42
 
43
- def update: (?name: untyped, ?sources: untyped, ?libraries: untyped, ?ignored_sources: untyped, ?signatures: untyped, ?project: untyped) -> untyped
43
+ def signature: (*String args) -> void
44
44
 
45
- def no_builtin!: (?bool value) -> untyped
45
+ def update: (?name: Symbol, ?sources: Array[String], ?libraries: Array[String], ?signatures: Array[String], ?ignored_sources: Array[String], ?project: Project?) -> TargetDSL
46
46
 
47
- def vendor: (?::String dir, ?stdlib: untyped?, ?gems: untyped?) -> untyped
47
+ def no_builtin!: (?bool value) -> void
48
48
 
49
- def stdlib_path: (core_root: untyped, stdlib_root: untyped) -> untyped
49
+ def vendor: (?::String dir, ?stdlib: untyped?, ?gems: untyped?) -> void
50
50
 
51
- def repo_path: (*untyped paths) -> untyped
51
+ def stdlib_path: (core_root: String, stdlib_root: String) -> void
52
+
53
+ def repo_path: (*String paths) -> void
52
54
 
53
55
  # Configure the code diagnostics printing setup.
54
56
  #
@@ -71,24 +73,27 @@ module Steep
71
73
  # configure_code_diagnostics(D::Ruby.lenient)
72
74
  # ```
73
75
  #
74
- def configure_code_diagnostics: (?untyped? hash) { (untyped) -> untyped } -> untyped
76
+ def configure_code_diagnostics: (Hash[untyped, untyped] hash) -> void
77
+ | () { (Hash[untyped, untyped]) -> void } -> void
75
78
 
76
- def collection_config: (untyped path) -> untyped
79
+ def collection_config: (Pathname path) -> void
77
80
 
78
- def disable_collection: () -> untyped
81
+ def disable_collection: () -> void
79
82
  end
80
83
 
81
84
  attr_reader project: untyped
82
85
 
83
- def self.templates: () -> untyped
86
+ @@templates: Hash[Symbol, TargetDSL]
87
+
88
+ def self.templates: () -> Hash[Symbol, TargetDSL]
84
89
 
85
- def initialize: (project: untyped) -> void
90
+ def initialize: (project: Project) -> void
86
91
 
87
- def self.register_template: (untyped name, untyped target) -> untyped
92
+ def self.register_template: (Symbol name, TargetDSL target) -> void
88
93
 
89
- def self.parse: (untyped project, untyped code, ?filename: ::String) -> untyped
94
+ def self.parse: (Project project, String code, ?filename: String) -> void
90
95
 
91
- def target: (untyped name, ?template: untyped?) ?{ () -> untyped } -> untyped
96
+ def target: (Symbol name, ?template: Symbol?) ?{ (TargetDSL) [self: TargetDSL] -> void } -> void
92
97
  end
93
98
  end
94
99
  end
@@ -1,13 +1,25 @@
1
1
  module Steep
2
2
  class Project
3
3
  class Options
4
- PathOptions: untyped
4
+ class PathOptions
5
+ attr_reader core_root: Pathname?
5
6
 
6
- attr_reader libraries: untyped
7
+ attr_reader stdlib_root: Pathname?
7
8
 
8
- attr_accessor paths: untyped
9
+ attr_reader repo_paths: Array[Pathname]
9
10
 
10
- attr_accessor collection_lock: untyped
11
+ def initialize: (?core_root: Pathname?, ?stdlib_root: Pathname?, ?repo_paths: Array[Pathname]) -> void
12
+
13
+ def customized_stdlib?: () -> bool
14
+
15
+ def customized_core?: () -> bool
16
+ end
17
+
18
+ attr_reader libraries: Array[String]
19
+
20
+ attr_accessor paths: PathOptions
21
+
22
+ attr_accessor collection_lock: RBS::Collection::Config::Lockfile
11
23
 
12
24
  def initialize: () -> void
13
25
  end
@@ -54,7 +54,7 @@
54
54
  character: 22
55
55
  end:
56
56
  line: 1
57
- character: -1
57
+ character: 28
58
58
  severity: ERROR
59
59
  message: Cannot inherit from a module `::Kernel`
60
60
  code: RBS::InheritModuleError
data/steep.gemspec CHANGED
@@ -33,7 +33,7 @@ Gem::Specification.new do |spec|
33
33
  spec.add_runtime_dependency "rainbow", ">= 2.2.2", "< 4.0"
34
34
  spec.add_runtime_dependency "listen", "~> 3.0"
35
35
  spec.add_runtime_dependency "language_server-protocol", ">= 3.15", "< 4.0"
36
- spec.add_runtime_dependency "rbs", "~> 2.8.0"
36
+ spec.add_runtime_dependency "rbs", ">= 2.8.0"
37
37
  spec.add_runtime_dependency "parallel", ">= 1.0.0"
38
38
  spec.add_runtime_dependency "terminal-table", ">= 2", "< 4"
39
39
  spec.add_runtime_dependency "securerandom", ">= 0.1"
@@ -42,4 +42,5 @@ Gem::Specification.new do |spec|
42
42
  spec.add_runtime_dependency "fileutils", ">= 1.1.0"
43
43
  spec.add_runtime_dependency "strscan", ">= 1.0.0"
44
44
  spec.add_runtime_dependency "csv", ">= 3.0.9"
45
+ spec.add_runtime_dependency "pathname", ">= 0.2.1"
45
46
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: steep
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.4.0.dev.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Soutaro Matsumoto
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-17 00:00:00.000000000 Z
11
+ date: 2023-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -96,14 +96,14 @@ dependencies:
96
96
  name: rbs
97
97
  requirement: !ruby/object:Gem::Requirement
98
98
  requirements:
99
- - - "~>"
99
+ - - ">="
100
100
  - !ruby/object:Gem::Version
101
101
  version: 2.8.0
102
102
  type: :runtime
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  requirements:
106
- - - "~>"
106
+ - - ">="
107
107
  - !ruby/object:Gem::Version
108
108
  version: 2.8.0
109
109
  - !ruby/object:Gem::Dependency
@@ -224,6 +224,20 @@ dependencies:
224
224
  - - ">="
225
225
  - !ruby/object:Gem::Version
226
226
  version: 3.0.9
227
+ - !ruby/object:Gem::Dependency
228
+ name: pathname
229
+ requirement: !ruby/object:Gem::Requirement
230
+ requirements:
231
+ - - ">="
232
+ - !ruby/object:Gem::Version
233
+ version: 0.2.1
234
+ type: :runtime
235
+ prerelease: false
236
+ version_requirements: !ruby/object:Gem::Requirement
237
+ requirements:
238
+ - - ">="
239
+ - !ruby/object:Gem::Version
240
+ version: 0.2.1
227
241
  description: Gradual Typing for Ruby
228
242
  email:
229
243
  - matsumoto@soutaro.com
@@ -764,11 +778,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
764
778
  version: 2.7.0
765
779
  required_rubygems_version: !ruby/object:Gem::Requirement
766
780
  requirements:
767
- - - ">="
781
+ - - ">"
768
782
  - !ruby/object:Gem::Version
769
- version: '0'
783
+ version: 1.3.1
770
784
  requirements: []
771
- rubygems_version: 3.4.6
785
+ rubygems_version: 3.3.26
772
786
  signing_key:
773
787
  specification_version: 4
774
788
  summary: Gradual Typing for Ruby