steep 0.14.0 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (190) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/exe/rbs +1 -1
  4. data/lib/steep/annotation_parser.rb +4 -4
  5. data/lib/steep/ast/buffer.rb +11 -7
  6. data/lib/steep/ast/builtin.rb +8 -0
  7. data/lib/steep/ast/types/factory.rb +55 -55
  8. data/lib/steep/drivers/check.rb +20 -4
  9. data/lib/steep/drivers/langserver.rb +6 -1
  10. data/lib/steep/drivers/vendor.rb +2 -2
  11. data/lib/steep/project/completion_provider.rb +5 -11
  12. data/lib/steep/project/dsl.rb +14 -0
  13. data/lib/steep/project/file.rb +42 -46
  14. data/lib/steep/project/hover_content.rb +11 -5
  15. data/lib/steep/project/options.rb +25 -3
  16. data/lib/steep/project/target.rb +10 -4
  17. data/lib/steep/signature/errors.rb +1 -1
  18. data/lib/steep/signature/validator.rb +8 -8
  19. data/lib/steep/source.rb +1 -1
  20. data/lib/steep/type_construction.rb +987 -711
  21. data/lib/steep/type_inference/constant_env.rb +1 -1
  22. data/lib/steep/type_inference/context.rb +7 -3
  23. data/lib/steep/type_inference/context_array.rb +111 -0
  24. data/lib/steep/type_inference/local_variable_type_env.rb +226 -0
  25. data/lib/steep/type_inference/logic.rb +130 -0
  26. data/lib/steep/type_inference/type_env.rb +5 -69
  27. data/lib/steep/typing.rb +79 -22
  28. data/lib/steep/version.rb +1 -1
  29. data/lib/steep.rb +6 -1
  30. data/smoke/alias/Steepfile +1 -0
  31. data/smoke/and/Steepfile +1 -0
  32. data/smoke/array/Steepfile +1 -0
  33. data/smoke/array/b.rb +0 -2
  34. data/smoke/block/Steepfile +1 -0
  35. data/smoke/case/Steepfile +1 -0
  36. data/smoke/class/Steepfile +1 -0
  37. data/smoke/const/Steepfile +1 -0
  38. data/smoke/dstr/Steepfile +1 -0
  39. data/smoke/ensure/Steepfile +1 -0
  40. data/smoke/enumerator/Steepfile +1 -0
  41. data/smoke/extension/Steepfile +1 -0
  42. data/smoke/extension/c.rb +1 -0
  43. data/smoke/hash/Steepfile +1 -0
  44. data/smoke/hello/Steepfile +1 -0
  45. data/smoke/if/Steepfile +1 -0
  46. data/smoke/if/a.rb +1 -1
  47. data/smoke/implements/Steepfile +1 -0
  48. data/smoke/initialize/Steepfile +1 -0
  49. data/smoke/integer/Steepfile +1 -0
  50. data/smoke/interface/Steepfile +1 -0
  51. data/smoke/kwbegin/Steepfile +1 -0
  52. data/smoke/lambda/Steepfile +1 -0
  53. data/smoke/literal/Steepfile +1 -0
  54. data/smoke/map/Steepfile +1 -0
  55. data/smoke/method/Steepfile +1 -0
  56. data/smoke/module/Steepfile +1 -0
  57. data/smoke/regexp/Steepfile +1 -0
  58. data/smoke/regression/Steepfile +1 -0
  59. data/smoke/rescue/Steepfile +1 -0
  60. data/smoke/rescue/a.rb +1 -1
  61. data/smoke/self/Steepfile +1 -0
  62. data/smoke/skip/Steepfile +1 -0
  63. data/smoke/stdout/Steepfile +1 -0
  64. data/smoke/super/Steepfile +1 -0
  65. data/smoke/type_case/Steepfile +1 -0
  66. data/smoke/yield/Steepfile +1 -0
  67. data/steep.gemspec +1 -1
  68. data/vendor/ruby-signature/.gitignore +2 -2
  69. data/vendor/ruby-signature/README.md +2 -2
  70. data/vendor/ruby-signature/Rakefile +2 -2
  71. data/vendor/ruby-signature/bin/annotate-with-rdoc +14 -13
  72. data/vendor/ruby-signature/bin/console +1 -1
  73. data/vendor/ruby-signature/bin/sort +7 -6
  74. data/vendor/ruby-signature/bin/test_runner.rb +0 -1
  75. data/vendor/ruby-signature/docs/CONTRIBUTING.md +1 -1
  76. data/vendor/ruby-signature/docs/sigs.md +3 -3
  77. data/vendor/ruby-signature/docs/stdlib.md +1 -1
  78. data/vendor/ruby-signature/docs/syntax.md +9 -9
  79. data/vendor/ruby-signature/exe/rbs +5 -1
  80. data/vendor/ruby-signature/lib/rbs/ast/annotation.rb +27 -0
  81. data/vendor/ruby-signature/lib/rbs/ast/comment.rb +27 -0
  82. data/vendor/ruby-signature/lib/rbs/ast/declarations.rb +395 -0
  83. data/vendor/ruby-signature/lib/rbs/ast/members.rb +362 -0
  84. data/vendor/ruby-signature/lib/rbs/buffer.rb +50 -0
  85. data/vendor/ruby-signature/lib/rbs/builtin_names.rb +55 -0
  86. data/vendor/ruby-signature/lib/rbs/cli.rb +558 -0
  87. data/vendor/ruby-signature/lib/rbs/constant.rb +26 -0
  88. data/vendor/ruby-signature/lib/rbs/constant_table.rb +150 -0
  89. data/vendor/ruby-signature/lib/rbs/definition.rb +170 -0
  90. data/vendor/ruby-signature/lib/rbs/definition_builder.rb +919 -0
  91. data/vendor/ruby-signature/lib/rbs/environment.rb +281 -0
  92. data/vendor/ruby-signature/lib/rbs/environment_loader.rb +136 -0
  93. data/vendor/ruby-signature/lib/rbs/environment_walker.rb +124 -0
  94. data/vendor/ruby-signature/lib/rbs/errors.rb +187 -0
  95. data/vendor/ruby-signature/lib/rbs/location.rb +102 -0
  96. data/vendor/ruby-signature/lib/rbs/method_type.rb +123 -0
  97. data/vendor/ruby-signature/lib/rbs/namespace.rb +91 -0
  98. data/vendor/ruby-signature/lib/{ruby/signature → rbs}/parser.rb +21 -23
  99. data/vendor/ruby-signature/lib/{ruby/signature → rbs}/parser.y +18 -18
  100. data/vendor/ruby-signature/lib/rbs/prototype/rb.rb +553 -0
  101. data/vendor/ruby-signature/lib/rbs/prototype/rbi.rb +587 -0
  102. data/vendor/ruby-signature/lib/rbs/prototype/runtime.rb +381 -0
  103. data/vendor/ruby-signature/lib/rbs/substitution.rb +46 -0
  104. data/vendor/ruby-signature/lib/rbs/test/errors.rb +61 -0
  105. data/vendor/ruby-signature/lib/rbs/test/hook.rb +294 -0
  106. data/vendor/ruby-signature/lib/{ruby/signature → rbs}/test/setup.rb +7 -7
  107. data/vendor/ruby-signature/lib/rbs/test/spy.rb +325 -0
  108. data/vendor/ruby-signature/lib/rbs/test/test_helper.rb +183 -0
  109. data/vendor/ruby-signature/lib/rbs/test/type_check.rb +254 -0
  110. data/vendor/ruby-signature/lib/rbs/test.rb +26 -0
  111. data/vendor/ruby-signature/lib/rbs/type_name.rb +70 -0
  112. data/vendor/ruby-signature/lib/rbs/types.rb +936 -0
  113. data/vendor/ruby-signature/lib/rbs/variance_calculator.rb +138 -0
  114. data/vendor/ruby-signature/lib/rbs/vendorer.rb +47 -0
  115. data/vendor/ruby-signature/lib/rbs/version.rb +3 -0
  116. data/vendor/ruby-signature/lib/rbs/writer.rb +269 -0
  117. data/vendor/ruby-signature/lib/rbs.rb +64 -0
  118. data/vendor/ruby-signature/lib/ruby/signature.rb +4 -61
  119. data/vendor/ruby-signature/{ruby-signature.gemspec → rbs.gemspec} +4 -4
  120. data/vendor/ruby-signature/stdlib/abbrev/abbrev.rbs +58 -1
  121. data/vendor/ruby-signature/stdlib/base64/base64.rbs +69 -13
  122. data/vendor/ruby-signature/stdlib/benchmark/benchmark.rbs +372 -0
  123. data/vendor/ruby-signature/stdlib/builtin/builtin.rbs +9 -0
  124. data/vendor/ruby-signature/stdlib/builtin/dir.rbs +1 -7
  125. data/vendor/ruby-signature/stdlib/builtin/encoding.rbs +2 -1
  126. data/vendor/ruby-signature/stdlib/builtin/exception.rbs +3 -2
  127. data/vendor/ruby-signature/stdlib/builtin/file.rbs +902 -302
  128. data/vendor/ruby-signature/stdlib/builtin/gc.rbs +190 -68
  129. data/vendor/ruby-signature/stdlib/builtin/integer.rbs +3 -6
  130. data/vendor/ruby-signature/stdlib/builtin/kernel.rbs +6 -4
  131. data/vendor/ruby-signature/stdlib/builtin/marshal.rbs +146 -120
  132. data/vendor/ruby-signature/stdlib/builtin/math.rbs +310 -7
  133. data/vendor/ruby-signature/stdlib/builtin/method.rbs +11 -8
  134. data/vendor/ruby-signature/stdlib/builtin/module.rbs +959 -103
  135. data/vendor/ruby-signature/stdlib/builtin/proc.rbs +3 -0
  136. data/vendor/ruby-signature/stdlib/builtin/process.rbs +981 -108
  137. data/vendor/ruby-signature/stdlib/builtin/random.rbs +215 -41
  138. data/vendor/ruby-signature/stdlib/builtin/rb_config.rbs +47 -0
  139. data/vendor/ruby-signature/stdlib/builtin/string.rbs +9 -2
  140. data/vendor/ruby-signature/stdlib/builtin/string_io.rbs +282 -11
  141. data/vendor/ruby-signature/stdlib/builtin/symbol.rbs +11 -13
  142. data/vendor/ruby-signature/stdlib/builtin/thread.rbs +25 -29
  143. data/vendor/ruby-signature/stdlib/builtin/thread_group.rbs +1 -1
  144. data/vendor/ruby-signature/stdlib/builtin/time.rbs +875 -567
  145. data/vendor/ruby-signature/stdlib/builtin/trace_point.rbs +243 -44
  146. data/vendor/ruby-signature/stdlib/builtin/unbound_method.rbs +103 -109
  147. data/vendor/ruby-signature/stdlib/coverage/coverage.rbs +62 -0
  148. data/vendor/ruby-signature/stdlib/csv/csv.rbs +773 -0
  149. data/vendor/ruby-signature/stdlib/erb/erb.rbs +375 -1
  150. data/vendor/ruby-signature/stdlib/find/find.rbs +0 -4
  151. data/vendor/ruby-signature/stdlib/ipaddr/ipaddr.rbs +247 -0
  152. data/vendor/ruby-signature/stdlib/pathname/pathname.rbs +1088 -16
  153. data/vendor/ruby-signature/stdlib/set/set.rbs +251 -27
  154. metadata +49 -44
  155. data/exe/ruby-signature +0 -3
  156. data/vendor/ruby-signature/exe/ruby-signature +0 -7
  157. data/vendor/ruby-signature/lib/ruby/signature/ast/annotation.rb +0 -29
  158. data/vendor/ruby-signature/lib/ruby/signature/ast/comment.rb +0 -29
  159. data/vendor/ruby-signature/lib/ruby/signature/ast/declarations.rb +0 -391
  160. data/vendor/ruby-signature/lib/ruby/signature/ast/members.rb +0 -364
  161. data/vendor/ruby-signature/lib/ruby/signature/buffer.rb +0 -52
  162. data/vendor/ruby-signature/lib/ruby/signature/builtin_names.rb +0 -54
  163. data/vendor/ruby-signature/lib/ruby/signature/cli.rb +0 -555
  164. data/vendor/ruby-signature/lib/ruby/signature/constant.rb +0 -28
  165. data/vendor/ruby-signature/lib/ruby/signature/constant_table.rb +0 -152
  166. data/vendor/ruby-signature/lib/ruby/signature/definition.rb +0 -172
  167. data/vendor/ruby-signature/lib/ruby/signature/definition_builder.rb +0 -921
  168. data/vendor/ruby-signature/lib/ruby/signature/environment.rb +0 -283
  169. data/vendor/ruby-signature/lib/ruby/signature/environment_loader.rb +0 -138
  170. data/vendor/ruby-signature/lib/ruby/signature/environment_walker.rb +0 -126
  171. data/vendor/ruby-signature/lib/ruby/signature/errors.rb +0 -189
  172. data/vendor/ruby-signature/lib/ruby/signature/location.rb +0 -104
  173. data/vendor/ruby-signature/lib/ruby/signature/method_type.rb +0 -125
  174. data/vendor/ruby-signature/lib/ruby/signature/namespace.rb +0 -93
  175. data/vendor/ruby-signature/lib/ruby/signature/prototype/rb.rb +0 -444
  176. data/vendor/ruby-signature/lib/ruby/signature/prototype/rbi.rb +0 -579
  177. data/vendor/ruby-signature/lib/ruby/signature/prototype/runtime.rb +0 -383
  178. data/vendor/ruby-signature/lib/ruby/signature/substitution.rb +0 -48
  179. data/vendor/ruby-signature/lib/ruby/signature/test/errors.rb +0 -63
  180. data/vendor/ruby-signature/lib/ruby/signature/test/hook.rb +0 -290
  181. data/vendor/ruby-signature/lib/ruby/signature/test/spy.rb +0 -327
  182. data/vendor/ruby-signature/lib/ruby/signature/test/test_helper.rb +0 -185
  183. data/vendor/ruby-signature/lib/ruby/signature/test/type_check.rb +0 -256
  184. data/vendor/ruby-signature/lib/ruby/signature/test.rb +0 -28
  185. data/vendor/ruby-signature/lib/ruby/signature/type_name.rb +0 -72
  186. data/vendor/ruby-signature/lib/ruby/signature/types.rb +0 -932
  187. data/vendor/ruby-signature/lib/ruby/signature/variance_calculator.rb +0 -140
  188. data/vendor/ruby-signature/lib/ruby/signature/vendorer.rb +0 -49
  189. data/vendor/ruby-signature/lib/ruby/signature/version.rb +0 -5
  190. data/vendor/ruby-signature/lib/ruby/signature/writer.rb +0 -271
@@ -31,14 +31,6 @@ module Steep
31
31
  case status
32
32
  when TypeCheckStatus
33
33
  status.typing.errors
34
- # errors.reject do |error|
35
- # case
36
- # when error.is_a?(Errors::FallbackAny)
37
- # !options.fallback_any_is_error
38
- # when error.is_a?(Errors::MethodDefinitionMissing)
39
- # options.allow_missing_definitions
40
- # end
41
- # end
42
34
  else
43
35
  []
44
36
  end
@@ -49,40 +41,45 @@ module Steep
49
41
  end
50
42
 
51
43
  def self.type_check(source, subtyping:)
52
- typing = Typing.new
53
-
54
- if source
55
- annotations = source.annotations(block: source.node, factory: subtyping.factory, current_module: AST::Namespace.root)
56
- const_env = TypeInference::ConstantEnv.new(factory: subtyping.factory, context: nil)
57
- type_env = TypeInference::TypeEnv.build(annotations: annotations,
58
- subtyping: subtyping,
59
- const_env: const_env,
60
- signatures: subtyping.factory.env)
61
-
62
- construction = TypeConstruction.new(
63
- checker: subtyping,
64
- annotations: annotations,
65
- source: source,
66
- context: TypeInference::Context.new(
67
- block_context: nil,
68
- module_context: TypeInference::Context::ModuleContext.new(
69
- instance_type: nil,
70
- module_type: nil,
71
- implement_name: nil,
72
- current_namespace: AST::Namespace.root,
73
- const_env: const_env,
74
- class_name: nil
75
- ),
76
- method_context: nil,
77
- break_context: nil,
78
- self_type: AST::Builtin::Object.instance_type,
79
- type_env: type_env
80
- ),
81
- typing: typing
82
- )
83
-
84
- construction.synthesize(source.node)
85
- end
44
+ annotations = source.annotations(block: source.node, factory: subtyping.factory, current_module: AST::Namespace.root)
45
+ const_env = TypeInference::ConstantEnv.new(factory: subtyping.factory, context: nil)
46
+ type_env = TypeInference::TypeEnv.build(annotations: annotations,
47
+ subtyping: subtyping,
48
+ const_env: const_env,
49
+ signatures: subtyping.factory.env)
50
+ lvar_env = TypeInference::LocalVariableTypeEnv.empty(
51
+ subtyping: subtyping,
52
+ self_type: AST::Builtin::Object.instance_type
53
+ ).annotate(annotations)
54
+
55
+ context = TypeInference::Context.new(
56
+ block_context: nil,
57
+ module_context: TypeInference::Context::ModuleContext.new(
58
+ instance_type: nil,
59
+ module_type: nil,
60
+ implement_name: nil,
61
+ current_namespace: AST::Namespace.root,
62
+ const_env: const_env,
63
+ class_name: nil
64
+ ),
65
+ method_context: nil,
66
+ break_context: nil,
67
+ self_type: AST::Builtin::Object.instance_type,
68
+ type_env: type_env,
69
+ lvar_env: lvar_env
70
+ )
71
+
72
+ typing = Typing.new(source: source, root_context: context)
73
+
74
+ construction = TypeConstruction.new(
75
+ checker: subtyping,
76
+ annotations: annotations,
77
+ source: source,
78
+ context: context,
79
+ typing: typing
80
+ )
81
+
82
+ construction.synthesize(source.node) if source.node
86
83
 
87
84
  typing
88
85
  end
@@ -93,7 +90,6 @@ module Steep
93
90
 
94
91
  parse(subtyping.factory) do |source|
95
92
  typing = self.class.type_check(source, subtyping: subtyping)
96
-
97
93
  @status = TypeCheckStatus.new(
98
94
  typing: typing,
99
95
  source: source,
@@ -143,10 +139,10 @@ module Steep
143
139
  end
144
140
 
145
141
  def load!
146
- buffer = Ruby::Signature::Buffer.new(name: path, content: content)
147
- decls = Ruby::Signature::Parser.parse_signature(buffer)
142
+ buffer = RBS::Buffer.new(name: path, content: content)
143
+ decls = RBS::Parser.parse_signature(buffer)
148
144
  @status = DeclarationsStatus.new(declarations: decls)
149
- rescue Ruby::Signature::Parser::SyntaxError, Ruby::Signature::Parser::SemanticsError => exn
145
+ rescue RBS::Parser::SyntaxError, RBS::Parser::SemanticsError => exn
150
146
  @status = ParseErrorStatus.new(error: exn)
151
147
  end
152
148
  end
@@ -42,12 +42,18 @@ module Steep
42
42
 
43
43
  if node
44
44
  case node.type
45
- when :lvar, :lvasgn
45
+ when :lvar
46
46
  var_name = node.children[0]
47
- context = status.typing.context_of(node: node)
48
- var_type = context.type_env.get(lvar: var_name.name)
47
+ context = status.typing.context_at(line: line, column: column)
48
+ var_type = context.lvar_env[var_name.name] || AST::Types::Any.new(location: nil)
49
49
 
50
50
  VariableContent.new(node: node, name: var_name.name, type: var_type, location: node.location.name)
51
+ when :lvasgn
52
+ var_name, rhs = node.children
53
+ context = status.typing.context_at(line: line, column: column)
54
+ type = context.lvar_env[var_name.name] || status.typing.type_of(node: rhs)
55
+
56
+ VariableContent.new(node: node, name: var_name.name, type: type, location: node.location.name)
51
57
  when :send
52
58
  receiver, method_name, *_ = node.children
53
59
 
@@ -58,7 +64,7 @@ module Steep
58
64
  node
59
65
  end
60
66
 
61
- context = status.typing.context_of(node: result_node)
67
+ context = status.typing.context_at(line: line, column: column)
62
68
 
63
69
  receiver_type = if receiver
64
70
  status.typing.type_of(node: receiver)
@@ -98,7 +104,7 @@ module Steep
98
104
  location: result_node.location.expression
99
105
  )
100
106
  when :def, :defs
101
- context = status.typing.context_of(node: node)
107
+ context = status.typing.context_at(line: line, column: column)
102
108
  method_context = context.method_context
103
109
 
104
110
  if method_context
@@ -1,20 +1,42 @@
1
1
  module Steep
2
2
  class Project
3
3
  class Options
4
- attr_accessor :fallback_any_is_error
4
+ attr_accessor :allow_fallback_any
5
5
  attr_accessor :allow_missing_definitions
6
+ attr_accessor :allow_unknown_constant_assignment
7
+ attr_accessor :allow_unknown_method_calls
6
8
  attr_accessor :vendored_stdlib_path
7
9
  attr_accessor :vendored_gems_path
8
10
  attr_reader :libraries
9
11
 
10
12
  def initialize
11
- self.fallback_any_is_error = false
12
- self.allow_missing_definitions = true
13
+ apply_default_typing_options!
13
14
  self.vendored_gems_path = nil
14
15
  self.vendored_stdlib_path = nil
15
16
 
16
17
  @libraries = []
17
18
  end
19
+
20
+ def apply_default_typing_options!
21
+ self.allow_fallback_any = true
22
+ self.allow_missing_definitions = true
23
+ self.allow_unknown_constant_assignment = false
24
+ self.allow_unknown_method_calls = false
25
+ end
26
+
27
+ def apply_strict_typing_options!
28
+ self.allow_fallback_any = false
29
+ self.allow_missing_definitions = false
30
+ self.allow_unknown_constant_assignment = false
31
+ self.allow_unknown_method_calls = false
32
+ end
33
+
34
+ def apply_lenient_typing_options!
35
+ self.allow_fallback_any = true
36
+ self.allow_missing_definitions = true
37
+ self.allow_unknown_constant_assignment = true
38
+ self.allow_unknown_method_calls = true
39
+ end
18
40
  end
19
41
  end
20
42
  end
@@ -89,10 +89,10 @@ module Steep
89
89
  end
90
90
 
91
91
  def environment
92
- @environment ||= Ruby::Signature::Environment.new().tap do |env|
93
- stdlib_root = options.vendored_stdlib_path || Ruby::Signature::EnvironmentLoader::STDLIB_ROOT
92
+ @environment ||= RBS::Environment.new().tap do |env|
93
+ stdlib_root = options.vendored_stdlib_path || RBS::EnvironmentLoader::STDLIB_ROOT
94
94
  gem_vendor_path = options.vendored_gems_path
95
- loader = Ruby::Signature::EnvironmentLoader.new(stdlib_root: stdlib_root, gem_vendor_path: gem_vendor_path)
95
+ loader = RBS::EnvironmentLoader.new(stdlib_root: stdlib_root, gem_vendor_path: gem_vendor_path)
96
96
  options.libraries.each do |lib|
97
97
  loader.add(library: lib)
98
98
  end
@@ -129,7 +129,7 @@ module Steep
129
129
  end
130
130
  end
131
131
 
132
- definition_builder = Ruby::Signature::DefinitionBuilder.new(env: env)
132
+ definition_builder = RBS::DefinitionBuilder.new(env: env)
133
133
  factory = AST::Types::Factory.new(builder: definition_builder)
134
134
  check = Subtyping::Check.new(factory: factory)
135
135
 
@@ -177,6 +177,12 @@ module Steep
177
177
  )
178
178
  end
179
179
 
180
+ def no_error?
181
+ source_files.all? do |_, file|
182
+ file.status.is_a?(Project::SourceFile::TypeCheckStatus)
183
+ end
184
+ end
185
+
180
186
  def errors
181
187
  case status
182
188
  when TypeCheckStatus
@@ -5,7 +5,7 @@ module Steep
5
5
  attr_reader :location
6
6
 
7
7
  def loc_to_s
8
- Ruby::Signature::Location.to_string location
8
+ RBS::Location.to_string location
9
9
  end
10
10
 
11
11
  def to_s
@@ -1,8 +1,8 @@
1
1
  module Steep
2
2
  module Signature
3
3
  class Validator
4
- Location = Ruby::Signature::Location
5
- Declarations = Ruby::Signature::AST::Declarations
4
+ Location = RBS::Location
5
+ Declarations = RBS::AST::Declarations
6
6
 
7
7
  attr_reader :checker
8
8
 
@@ -53,17 +53,17 @@ module Steep
53
53
  rescue_validation_errors do
54
54
  Steep.logger.info "#{Location.to_string decl.location}:\tValidating class definition `#{name}`..."
55
55
  builder.build_instance(decl.name.absolute!).each_type do |type|
56
- env.validate type, namespace: Ruby::Signature::Namespace.root
56
+ env.validate type, namespace: RBS::Namespace.root
57
57
  end
58
58
  builder.build_singleton(decl.name.absolute!).each_type do |type|
59
- env.validate type, namespace: Ruby::Signature::Namespace.root
59
+ env.validate type, namespace: RBS::Namespace.root
60
60
  end
61
61
  end
62
62
  when Declarations::Interface
63
63
  rescue_validation_errors do
64
64
  Steep.logger.info "#{Location.to_string decl.location}:\tValidating interface `#{name}`..."
65
65
  builder.build_interface(decl.name.absolute!, decl).each_type do |type|
66
- env.validate type, namespace: Ruby::Signature::Namespace.root
66
+ env.validate type, namespace: RBS::Namespace.root
67
67
  end
68
68
  end
69
69
  end
@@ -88,7 +88,7 @@ module Steep
88
88
  env.each_global do |name, decl|
89
89
  rescue_validation_errors do
90
90
  Steep.logger.info "#{Location.to_string decl.location}:\tValidating global `#{name}`..."
91
- env.validate(decl.type, namespace: Ruby::Signature::Namespace.root)
91
+ env.validate(decl.type, namespace: RBS::Namespace.root)
92
92
  end
93
93
  end
94
94
  end
@@ -104,14 +104,14 @@ module Steep
104
104
 
105
105
  def rescue_validation_errors
106
106
  yield
107
- rescue Ruby::Signature::InvalidTypeApplicationError => exn
107
+ rescue RBS::InvalidTypeApplicationError => exn
108
108
  @errors << Errors::InvalidTypeApplicationError.new(
109
109
  name: factory.type_name(exn.type_name),
110
110
  args: exn.args.map {|ty| factory.type(ty) },
111
111
  params: exn.params.each.map(&:name),
112
112
  location: exn.location
113
113
  )
114
- rescue Ruby::Signature::NoTypeFoundError => exn
114
+ rescue RBS::NoTypeFoundError => exn
115
115
  @errors << Errors::UnknownTypeNameError.new(
116
116
  name: factory.type_name(exn.type_name),
117
117
  location: exn.location
data/lib/steep/source.rb CHANGED
@@ -51,7 +51,7 @@ module Steep
51
51
  if n
52
52
  labeling.translate(n, {})
53
53
  else
54
- return
54
+ return new(path: path, node: nil, mapping: {})
55
55
  end
56
56
  end
57
57