steep 1.7.0.dev.3 → 1.7.0

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 (170) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -0
  3. data/README.md +18 -0
  4. data/doc/narrowing.md +1 -1
  5. data/doc/shape.md +176 -0
  6. data/guides/src/gem-rbs-collection/gem-rbs-collection.md +7 -24
  7. data/lib/steep/ast/types/factory.rb +27 -18
  8. data/lib/steep/ast/types/proc.rb +14 -9
  9. data/lib/steep/interface/block.rb +1 -1
  10. data/lib/steep/interface/builder.rb +1 -0
  11. data/lib/steep/interface/function.rb +14 -6
  12. data/lib/steep/interface/method_type.rb +15 -7
  13. data/lib/steep/project/pattern.rb +1 -2
  14. data/lib/steep/rake_task.rb +132 -0
  15. data/lib/steep/server/interaction_worker.rb +6 -0
  16. data/lib/steep/server/lsp_formatter.rb +2 -0
  17. data/lib/steep/services/completion_provider.rb +1 -1
  18. data/lib/steep/services/file_loader.rb +15 -20
  19. data/lib/steep/services/signature_help_provider.rb +11 -9
  20. data/lib/steep/signature/validator.rb +1 -1
  21. data/lib/steep/subtyping/check.rb +15 -6
  22. data/lib/steep/subtyping/variable_variance.rb +3 -3
  23. data/lib/steep/type_construction.rb +186 -149
  24. data/lib/steep/type_inference/block_params.rb +1 -1
  25. data/lib/steep/type_inference/logic_type_interpreter.rb +2 -1
  26. data/lib/steep/type_inference/method_params.rb +16 -0
  27. data/lib/steep/type_inference/send_args.rb +5 -2
  28. data/lib/steep/version.rb +1 -1
  29. data/steep.gemspec +5 -2
  30. metadata +7 -145
  31. data/.github/dependabot.yml +0 -28
  32. data/.github/workflows/ruby-windows.yml +0 -35
  33. data/.github/workflows/ruby.yml +0 -32
  34. data/.vscode/steep-shared.code-snippets +0 -41
  35. data/Gemfile +0 -14
  36. data/Gemfile.lock +0 -104
  37. data/Gemfile.steep +0 -0
  38. data/gemfile_steep/Gemfile +0 -3
  39. data/gemfile_steep/Gemfile.lock +0 -77
  40. data/rbs_collection.steep.lock.yaml +0 -108
  41. data/rbs_collection.steep.yaml +0 -23
  42. data/sig/shims/bundler.rbs +0 -3
  43. data/sig/shims/concurrent-ruby.rbs +0 -39
  44. data/sig/shims/exception.rbs +0 -4
  45. data/sig/shims/language-server_protocol.rbs +0 -450
  46. data/sig/shims/parser/comment.rbs +0 -33
  47. data/sig/shims/parser/nodes.rbs +0 -252
  48. data/sig/shims/parser/source/map.rbs +0 -146
  49. data/sig/shims/parser/source/range.rbs +0 -237
  50. data/sig/shims/parser.rbs +0 -69
  51. data/sig/shims/string.rbs +0 -4
  52. data/sig/shims/tagged_logging.rbs +0 -6
  53. data/sig/shims/yaml.rbs +0 -4
  54. data/sig/steep/annotation_parser.rbs +0 -60
  55. data/sig/steep/ast/annotation/collection.rbs +0 -78
  56. data/sig/steep/ast/annotation.rbs +0 -121
  57. data/sig/steep/ast/builtin.rbs +0 -69
  58. data/sig/steep/ast/ignore.rbs +0 -66
  59. data/sig/steep/ast/node/type_application.rbs +0 -31
  60. data/sig/steep/ast/node/type_assertion.rbs +0 -32
  61. data/sig/steep/ast/types/any.rbs +0 -29
  62. data/sig/steep/ast/types/boolean.rbs +0 -31
  63. data/sig/steep/ast/types/bot.rbs +0 -29
  64. data/sig/steep/ast/types/class.rbs +0 -33
  65. data/sig/steep/ast/types/factory.rbs +0 -110
  66. data/sig/steep/ast/types/helper.rbs +0 -24
  67. data/sig/steep/ast/types/instance.rbs +0 -33
  68. data/sig/steep/ast/types/intersection.rbs +0 -40
  69. data/sig/steep/ast/types/literal.rbs +0 -35
  70. data/sig/steep/ast/types/logic.rbs +0 -83
  71. data/sig/steep/ast/types/name.rbs +0 -84
  72. data/sig/steep/ast/types/nil.rbs +0 -31
  73. data/sig/steep/ast/types/proc.rbs +0 -53
  74. data/sig/steep/ast/types/record.rbs +0 -39
  75. data/sig/steep/ast/types/self.rbs +0 -33
  76. data/sig/steep/ast/types/top.rbs +0 -29
  77. data/sig/steep/ast/types/tuple.rbs +0 -37
  78. data/sig/steep/ast/types/union.rbs +0 -40
  79. data/sig/steep/ast/types/var.rbs +0 -42
  80. data/sig/steep/ast/types/void.rbs +0 -29
  81. data/sig/steep/ast/types.rbs +0 -16
  82. data/sig/steep/cli.rbs +0 -55
  83. data/sig/steep/diagnostic/deprecated/else_on_exhaustive_case.rbs +0 -13
  84. data/sig/steep/diagnostic/deprecated/unknown_constant_assigned.rbs +0 -15
  85. data/sig/steep/diagnostic/helper.rbs +0 -15
  86. data/sig/steep/diagnostic/lsp_formatter.rbs +0 -36
  87. data/sig/steep/diagnostic/ruby.rbs +0 -703
  88. data/sig/steep/diagnostic/signature.rbs +0 -252
  89. data/sig/steep/drivers/annotations.rbs +0 -17
  90. data/sig/steep/drivers/check.rbs +0 -33
  91. data/sig/steep/drivers/checkfile.rbs +0 -27
  92. data/sig/steep/drivers/diagnostic_printer.rbs +0 -25
  93. data/sig/steep/drivers/init.rbs +0 -19
  94. data/sig/steep/drivers/langserver.rbs +0 -36
  95. data/sig/steep/drivers/print_project.rbs +0 -15
  96. data/sig/steep/drivers/stats.rbs +0 -47
  97. data/sig/steep/drivers/utils/driver_helper.rbs +0 -25
  98. data/sig/steep/drivers/utils/jobs_option.rbs +0 -19
  99. data/sig/steep/drivers/validate.rbs +0 -15
  100. data/sig/steep/drivers/vendor.rbs +0 -19
  101. data/sig/steep/drivers/watch.rbs +0 -27
  102. data/sig/steep/drivers/worker.rbs +0 -29
  103. data/sig/steep/equatable.rbs +0 -11
  104. data/sig/steep/expectations.rbs +0 -72
  105. data/sig/steep/index/rbs_index.rbs +0 -141
  106. data/sig/steep/index/signature_symbol_provider.rbs +0 -41
  107. data/sig/steep/index/source_index.rbs +0 -63
  108. data/sig/steep/interface/block.rbs +0 -41
  109. data/sig/steep/interface/builder.rbs +0 -152
  110. data/sig/steep/interface/function.rbs +0 -270
  111. data/sig/steep/interface/method_type.rbs +0 -105
  112. data/sig/steep/interface/shape.rbs +0 -80
  113. data/sig/steep/interface/substitution.rbs +0 -51
  114. data/sig/steep/interface/type_param.rbs +0 -43
  115. data/sig/steep/method_name.rbs +0 -30
  116. data/sig/steep/module_helper.rbs +0 -16
  117. data/sig/steep/node_helper.rbs +0 -91
  118. data/sig/steep/path_helper.rbs +0 -15
  119. data/sig/steep/project/dsl.rbs +0 -108
  120. data/sig/steep/project/options.rbs +0 -47
  121. data/sig/steep/project/pattern.rbs +0 -47
  122. data/sig/steep/project/target.rbs +0 -25
  123. data/sig/steep/project.rbs +0 -26
  124. data/sig/steep/range_extension.rbs +0 -7
  125. data/sig/steep/server/base_worker.rbs +0 -49
  126. data/sig/steep/server/change_buffer.rbs +0 -38
  127. data/sig/steep/server/delay_queue.rbs +0 -37
  128. data/sig/steep/server/interaction_worker.rbs +0 -90
  129. data/sig/steep/server/lsp_formatter.rbs +0 -63
  130. data/sig/steep/server/master.rbs +0 -299
  131. data/sig/steep/server/type_check_worker.rbs +0 -141
  132. data/sig/steep/server/worker_process.rbs +0 -97
  133. data/sig/steep/services/completion_provider.rbs +0 -264
  134. data/sig/steep/services/content_change.rbs +0 -37
  135. data/sig/steep/services/file_loader.rbs +0 -21
  136. data/sig/steep/services/goto_service.rbs +0 -106
  137. data/sig/steep/services/hover_provider/rbs.rbs +0 -47
  138. data/sig/steep/services/hover_provider/ruby.rbs +0 -127
  139. data/sig/steep/services/hover_provider/singleton_methods.rbs +0 -11
  140. data/sig/steep/services/path_assignment.rbs +0 -21
  141. data/sig/steep/services/signature_help_provider.rbs +0 -51
  142. data/sig/steep/services/signature_service.rbs +0 -156
  143. data/sig/steep/services/stats_calculator.rbs +0 -41
  144. data/sig/steep/services/type_check_service.rbs +0 -112
  145. data/sig/steep/services/type_name_completion.rbs +0 -135
  146. data/sig/steep/signature/validator.rbs +0 -85
  147. data/sig/steep/source/ignore_ranges.rbs +0 -38
  148. data/sig/steep/source.rbs +0 -105
  149. data/sig/steep/subtyping/cache.rbs +0 -17
  150. data/sig/steep/subtyping/check.rbs +0 -131
  151. data/sig/steep/subtyping/constraints.rbs +0 -111
  152. data/sig/steep/subtyping/relation.rbs +0 -63
  153. data/sig/steep/subtyping/result.rbs +0 -179
  154. data/sig/steep/subtyping/variable_variance.rbs +0 -25
  155. data/sig/steep/thread_waiter.rbs +0 -13
  156. data/sig/steep/type_construction.rbs +0 -542
  157. data/sig/steep/type_inference/block_params.rbs +0 -170
  158. data/sig/steep/type_inference/case_when.rbs +0 -130
  159. data/sig/steep/type_inference/constant_env.rbs +0 -29
  160. data/sig/steep/type_inference/context.rbs +0 -216
  161. data/sig/steep/type_inference/context_array.rbs +0 -38
  162. data/sig/steep/type_inference/logic_type_interpreter.rbs +0 -108
  163. data/sig/steep/type_inference/method_call.rbs +0 -124
  164. data/sig/steep/type_inference/method_params.rbs +0 -127
  165. data/sig/steep/type_inference/multiple_assignment.rbs +0 -76
  166. data/sig/steep/type_inference/send_args.rbs +0 -243
  167. data/sig/steep/type_inference/type_env.rbs +0 -160
  168. data/sig/steep/type_inference/type_env_builder.rbs +0 -81
  169. data/sig/steep/typing.rbs +0 -75
  170. data/sig/steep.rbs +0 -45
data/sig/shims/yaml.rbs DELETED
@@ -1,4 +0,0 @@
1
- module Psych
2
- class SyntaxError < StandardError
3
- end
4
- end
@@ -1,60 +0,0 @@
1
- module Steep
2
- class AnnotationParser
3
- VAR_NAME: Regexp
4
-
5
- METHOD_NAME: Regexp
6
-
7
- CONST_NAME: Regexp
8
-
9
- DYNAMIC_NAME: Regexp
10
-
11
- IVAR_NAME: Regexp
12
-
13
- attr_reader factory: AST::Types::Factory
14
-
15
- def initialize: (factory: AST::Types::Factory) -> void
16
-
17
- class SyntaxError < StandardError
18
- attr_reader source: String
19
-
20
- attr_reader location: RBS::Location[untyped, untyped]
21
-
22
- def initialize: (source: String, location: RBS::Location[untyped, untyped], exn: Exception) -> void
23
- | (source: String, location: RBS::Location[untyped, untyped], message: String) -> void
24
- end
25
-
26
- TYPE: Regexp
27
-
28
- COLON: Regexp
29
-
30
- PARAM: Regexp
31
-
32
- TYPE_PARAMS: Regexp
33
-
34
- def parse_type: (MatchData, ?Symbol, location: RBS::Location[untyped, untyped]) -> AST::Types::t
35
-
36
- # ```
37
- # @type ${keyword} ${name}: ${type}
38
- # ```
39
- #
40
- # Example:
41
- #
42
- # - `@type const Foo::Bar: String`
43
- # - `@type var xyzzy: Array[String]`
44
- #
45
- def keyword_subject_type: (String keyword, Regexp name) -> Regexp
46
-
47
- # ```
48
- # @type ${keyword}: ${type}
49
- # ```
50
- #
51
- # Example:
52
- #
53
- # - `@type break: String`
54
- # - `@type self: Foo`
55
- #
56
- def keyword_and_type: (String keyword) -> ::Regexp
57
-
58
- def parse: (String src, location: RBS::Location[untyped, untyped]) -> AST::Annotation::t?
59
- end
60
- end
@@ -1,78 +0,0 @@
1
- module Steep
2
- module AST
3
- module Annotation
4
- class Collection
5
- attr_reader annotations: Array[Annotation::t]
6
-
7
- attr_reader factory: Types::Factory
8
-
9
- attr_reader context: RBS::Resolver::context
10
-
11
- attr_reader var_type_annotations: Hash[Symbol, VarType]
12
-
13
- attr_reader const_type_annotations: Hash[RBS::TypeName, ConstType]
14
-
15
- attr_reader ivar_type_annotations: Hash[Symbol, IvarType]
16
-
17
- attr_reader method_type_annotations: Hash[Symbol, MethodType?]
18
-
19
- attr_reader block_type_annotation: BlockType?
20
-
21
- attr_reader return_type_annotation: ReturnType?
22
-
23
- attr_reader self_type_annotation: SelfType?
24
-
25
- attr_reader instance_type_annotation: InstanceType?
26
-
27
- attr_reader module_type_annotation: ModuleType?
28
-
29
- attr_reader implement_module_annotation: Implements?
30
-
31
- attr_reader dynamic_annotations: Array[Dynamic]
32
-
33
- attr_reader break_type_annotation: BreakType?
34
-
35
- def initialize: (annotations: Array[Annotation::t], factory: Types::Factory, context: RBS::Resolver::context) -> void
36
-
37
- def absolute_type: (Types::t) -> Types::t
38
- | (Types::t?) -> Types::t?
39
-
40
- def var_type: (lvar: Symbol) -> Types::t?
41
- | (ivar: Symbol) -> Types::t?
42
- | (const: RBS::TypeName) -> Types::t?
43
-
44
- def method_type: (Symbol name) -> Interface::MethodType?
45
-
46
- %a{pure} def block_type: () -> Types::t?
47
-
48
- %a{pure} def return_type: () -> Types::t?
49
-
50
- %a{pure} def self_type: () -> Types::t?
51
-
52
- %a{pure} def instance_type: () -> Types::t?
53
-
54
- %a{pure} def module_type: () -> Types::t?
55
-
56
- %a{pure} def break_type: () -> Types::t?
57
-
58
- def lvar_types: () -> Hash[Symbol, Types::t]
59
-
60
- def ivar_types: () -> Hash[Symbol, Types::t]
61
-
62
- def const_types: () -> Hash[RBS::TypeName, Types::t]
63
-
64
- def instance_dynamics: () -> Array[Symbol]
65
-
66
- def module_dynamics: () -> Array[Symbol]
67
-
68
- def merge_block_annotations: (Collection annotations) -> Collection
69
-
70
- def any?: () { (Annotation::t) -> boolish } -> bool
71
-
72
- def size: () -> Integer
73
-
74
- def include?: (Annotation::t obj) -> bool
75
- end
76
- end
77
- end
78
- end
@@ -1,121 +0,0 @@
1
- module Steep
2
- module AST
3
- module Annotation
4
- type t = ReturnType | BlockType | SelfType | InstanceType | ModuleType | BreakType
5
- | MethodType | VarType | ConstType | IvarType
6
- | Implements | Dynamic
7
-
8
- type loc = RBS::Location[untyped, untyped]
9
-
10
- module Located
11
- attr_reader location: loc?
12
-
13
- %a{pure} def line: () -> Integer?
14
- end
15
-
16
- class Named[T, N]
17
- attr_reader name: N
18
-
19
- attr_reader type: T
20
-
21
- include Located
22
-
23
- def initialize: (name: N, type: T, ?location: loc?) -> void
24
-
25
- def ==: (untyped other) -> bool
26
- end
27
-
28
- class Typed
29
- attr_reader type: Types::t
30
-
31
- def initialize: (type: Types::t, ?location: loc?) -> void
32
-
33
- def ==: (untyped other) -> bool
34
-
35
- include Located
36
- end
37
-
38
- class ReturnType < Typed
39
- end
40
-
41
- class BlockType < Typed
42
- end
43
-
44
- class SelfType < Typed
45
- end
46
-
47
- class InstanceType < Typed
48
- end
49
-
50
- class ModuleType < Typed
51
- end
52
-
53
- class BreakType < Typed
54
- end
55
-
56
- class MethodType < Named[Interface::MethodType, Symbol]
57
- end
58
-
59
- class VarType < Named[Types::t, Symbol]
60
- end
61
-
62
- class ConstType < Named[Types::t, RBS::TypeName]
63
- end
64
-
65
- class IvarType < Named[Types::t, Symbol]
66
- end
67
-
68
- class Implements
69
- class Module
70
- attr_reader name: RBS::TypeName
71
-
72
- attr_reader args: Array[Symbol]
73
-
74
- def initialize: (name: RBS::TypeName, args: Array[Symbol]) -> void
75
-
76
- def ==: (untyped other) -> bool
77
-
78
- alias eql? ==
79
-
80
- def hash: () -> Integer
81
- end
82
-
83
- include Located
84
-
85
- attr_reader name: Module
86
-
87
- def initialize: (name: Module, ?location: loc?) -> void
88
-
89
- def ==: (untyped other) -> bool
90
- end
91
-
92
- class Dynamic
93
- class Name
94
- type kind = :instance | :module_instance | :module
95
-
96
- attr_reader kind: kind
97
-
98
- attr_reader name: Symbol
99
-
100
- attr_reader location: loc?
101
-
102
- def initialize: (name: Symbol, kind: kind, ?location: loc?) -> void
103
-
104
- def instance_method?: () -> bool
105
-
106
- def module_method?: () -> bool
107
-
108
- def ==: (untyped other) -> bool
109
- end
110
-
111
- include Located
112
-
113
- attr_reader names: Array[Name]
114
-
115
- def initialize: (names: Array[Name], ?location: loc?) -> void
116
-
117
- def ==: (untyped other) -> bool
118
- end
119
- end
120
- end
121
- end
@@ -1,69 +0,0 @@
1
- module Steep
2
- module AST
3
- module Builtin
4
- class Type
5
- attr_reader module_name: RBS::TypeName
6
-
7
- attr_reader arity: Integer
8
-
9
- def initialize: (String module_name, ?arity: ::Integer) -> void
10
-
11
- def instance_type: (*Types::t args, ?fill_untyped: bool) -> Types::Name::Instance
12
-
13
- def module_type: () -> Types::Name::Singleton
14
-
15
- def instance_type?: (Types::t `type`, ?args: Array[Types::t]?) -> Types::Name::Instance?
16
-
17
- def module_type?: (Types::t `type`) -> Types::Name::Singleton?
18
- end
19
-
20
- Object: Type
21
-
22
- BasicObject: Type
23
-
24
- Array: Type
25
-
26
- Range: Type
27
-
28
- Hash: Type
29
-
30
- Module: Type
31
-
32
- Class: Type
33
-
34
- Integer: Type
35
-
36
- Float: Type
37
-
38
- String: Type
39
-
40
- Symbol: Type
41
-
42
- TrueClass: Type
43
-
44
- FalseClass: Type
45
-
46
- Regexp: Type
47
-
48
- NilClass: Type
49
-
50
- Proc: Type
51
-
52
- def self.nil_type: () -> Types::Nil
53
-
54
- def self.any_type: () -> Types::Any
55
-
56
- def self.bool_type: () -> Types::Boolean
57
-
58
- def self.bottom_type: () -> Types::Bot
59
-
60
- def self.top_type: () -> Types::Top
61
-
62
- def self.optional: (Types::t) -> Types::t
63
-
64
- def self.true_type: () -> Types::Literal
65
-
66
- def self.false_type: () -> Types::Literal
67
- end
68
- end
69
- end
@@ -1,66 +0,0 @@
1
- use Parser::Source::Comment, RBS::Buffer, RBS::Location
2
-
3
- module Steep
4
- module AST
5
- module Ignore
6
- class BufferScanner
7
- attr_reader scanner: StringScanner
8
-
9
- attr_reader location: Location[untyped, untyped]
10
-
11
- def initialize: (Location[untyped, untyped]) -> void
12
-
13
- def offset: () -> Integer
14
-
15
- def charpos: () -> Integer
16
-
17
- def scan: (Regexp) -> Location[bot, bot]?
18
-
19
- def skip: (Regexp) -> void
20
-
21
- def eos?: () -> bool
22
- end
23
-
24
- type t = IgnoreStart | IgnoreEnd | IgnoreLine
25
-
26
- def self.parse: (Comment, Buffer) -> t?
27
-
28
- class IgnoreStart
29
- attr_reader comment: Comment
30
-
31
- attr_reader location: Location[bot, bot]
32
-
33
- def initialize: (Comment, Location[bot, bot]) -> void
34
-
35
- def line: () -> Integer
36
- end
37
-
38
- class IgnoreEnd
39
- attr_reader comment: Comment
40
-
41
- attr_reader location: Location[bot, bot]
42
-
43
- def initialize: (Comment, Location[bot, bot]) -> void
44
-
45
- def line: () -> Integer
46
- end
47
-
48
- class IgnoreLine
49
- type diagnostic = Location[:name, :following_comma]
50
- type diagnostics = Array[diagnostic]
51
-
52
- attr_reader comment: Comment
53
-
54
- attr_reader location: Location[:keyword, bot]
55
-
56
- attr_reader raw_diagnostics: diagnostics
57
-
58
- def initialize: (Comment, diagnostics, Location[:keyword, bot]) -> void
59
-
60
- def line: () -> Integer
61
-
62
- def ignored_diagnostics: () -> (:all | Array[String])
63
- end
64
- end
65
- end
66
- end
@@ -1,31 +0,0 @@
1
- module Steep
2
- module AST
3
- module Node
4
- class TypeApplication
5
- attr_reader location: RBS::Location[untyped, untyped]
6
-
7
- attr_reader node: Parser::AST::Node
8
-
9
- def line: () -> Integer
10
-
11
- def source: () -> String
12
-
13
- def initialize: (RBS::Location[untyped, untyped]) -> void
14
-
15
- def types: (RBS::Resolver::context, Subtyping::Check, Array[Symbol] type_vars) -> (Array[Types::t] | RBS::ParsingError | Enumerator[Diagnostic::Signature::Base, void] | nil)
16
-
17
- def types?: (RBS::Resolver::context, Subtyping::Check, Array[Symbol] type_vars) -> Array[Types::t]?
18
-
19
- @type_str: String?
20
- def type_str: () -> String
21
-
22
- def type_location: () -> RBS::Location[untyped, untyped]
23
-
24
- # Set the back reference to the `:tapp` node
25
- def set_node: (Parser::AST::Node) -> void
26
-
27
- def self.parse: (RBS::Location[untyped, untyped]) -> TypeApplication?
28
- end
29
- end
30
- end
31
- end
@@ -1,32 +0,0 @@
1
- module Steep
2
- module AST
3
- module Node
4
- class TypeAssertion
5
- attr_reader location: RBS::Location[untyped, untyped]
6
-
7
- def source: () -> String
8
-
9
- def line: () -> Integer
10
-
11
- def initialize: (RBS::Location[untyped, untyped]) -> void
12
-
13
- def type: (RBS::Resolver::context, Subtyping::Check, Array[Symbol] type_vars) -> (Types::t | RBS::ParsingError | Array[Diagnostic::Signature::Base] | nil)
14
-
15
- def type?: (RBS::Resolver::context, Subtyping::Check, Array[Symbol] type_vars) -> Types::t?
16
-
17
- @type_str: String?
18
- def type_str: () -> String
19
-
20
- def type_location: () -> RBS::Location[untyped, untyped]
21
-
22
- # Returns true if given comment body has a valid type syntax
23
- #
24
- # This method is used to reject RDoc directives beforehand.
25
- #
26
- def type_syntax?: () -> bool
27
-
28
- def self.parse: (RBS::Location[untyped, untyped]) -> TypeAssertion?
29
- end
30
- end
31
- end
32
- end
@@ -1,29 +0,0 @@
1
- module Steep
2
- module AST
3
- module Types
4
- class Any
5
- attr_reader location: untyped
6
-
7
- def initialize: (?location: untyped?) -> void
8
-
9
- def ==: (untyped other) -> bool
10
-
11
- def hash: () -> Integer
12
-
13
- alias eql? ==
14
-
15
- def subst: (Interface::Substitution s) -> Any
16
-
17
- def to_s: () -> String
18
-
19
- include Helper::NoFreeVariables
20
-
21
- include Helper::NoChild
22
-
23
- def level: () -> Array[Integer]
24
-
25
- def with_location: (untyped new_location) -> Any
26
- end
27
- end
28
- end
29
- end
@@ -1,31 +0,0 @@
1
- module Steep
2
- module AST
3
- module Types
4
- class Boolean
5
- attr_reader location: untyped
6
-
7
- def initialize: (?location: untyped?) -> void
8
-
9
- def ==: (untyped other) -> bool
10
-
11
- def hash: () -> Integer
12
-
13
- alias eql? ==
14
-
15
- def subst: (Interface::Substitution) -> Boolean
16
-
17
- def to_s: () -> String
18
-
19
- include Helper::NoFreeVariables
20
-
21
- include Helper::NoChild
22
-
23
- def level: () -> Array[Integer]
24
-
25
- def with_location: (untyped new_location) -> Boolean
26
-
27
- def back_type: () -> t
28
- end
29
- end
30
- end
31
- end
@@ -1,29 +0,0 @@
1
- module Steep
2
- module AST
3
- module Types
4
- class Bot
5
- attr_reader location: untyped
6
-
7
- def initialize: (?location: untyped?) -> void
8
-
9
- def ==: (untyped other) -> bool
10
-
11
- def hash: () -> Integer
12
-
13
- alias eql? ==
14
-
15
- def subst: (Interface::Substitution) -> Bot
16
-
17
- def to_s: () -> String
18
-
19
- include Helper::NoFreeVariables
20
-
21
- include Helper::NoChild
22
-
23
- def level: () -> Array[Integer]
24
-
25
- def with_location: (untyped new_location) -> Bot
26
- end
27
- end
28
- end
29
- end
@@ -1,33 +0,0 @@
1
- module Steep
2
- module AST
3
- module Types
4
- class Class
5
- attr_reader location: untyped
6
-
7
- def initialize: (?location: untyped?) -> void
8
-
9
- def to_s: () -> String
10
-
11
- def ==: (untyped other) -> bool
12
-
13
- def hash: () -> Integer
14
-
15
- alias eql? ==
16
-
17
- def subst: (Interface::Substitution s) -> t
18
-
19
- @@fvs: Set[variable]
20
- def free_variables: () -> Set[variable]
21
-
22
- include Helper::NoChild
23
-
24
- def level: () -> Array[Integer]
25
-
26
- def with_location: (untyped new_location) -> Class
27
-
28
- self.@instance: Class
29
- def self.instance: () -> Class
30
- end
31
- end
32
- end
33
- end
@@ -1,110 +0,0 @@
1
- use RBS::TypeName, RBS::Resolver::TypeNameResolver
2
-
3
- module Steep
4
- module AST
5
- module Types
6
- class Factory
7
- @env: RBS::Environment
8
-
9
- attr_reader definition_builder: RBS::DefinitionBuilder
10
-
11
- attr_reader type_cache: Hash[RBS::Types::t, t]
12
-
13
- attr_reader type_interface_cache: untyped
14
-
15
- @type_name_resolver: TypeNameResolver?
16
-
17
- def inspect: () -> String
18
-
19
- def initialize: (builder: RBS::DefinitionBuilder) -> void
20
-
21
- def type_name_resolver: () -> TypeNameResolver
22
-
23
- def type: (RBS::Types::t `type`) -> t
24
-
25
- def type_opt: (RBS::Types::t? `type`) -> t?
26
-
27
- def type_1: (t `type`) -> RBS::Types::t
28
-
29
- def type_1_opt: (t?) -> RBS::Types::t?
30
-
31
- def function_1: (Interface::Function func) -> RBS::Types::Function
32
-
33
- def params: (RBS::Types::Function `type`) -> Interface::Function::Params
34
-
35
- def type_param: (RBS::AST::TypeParam type_param) -> Interface::TypeParam
36
-
37
- def type_param_1: (Interface::TypeParam type_param) -> RBS::AST::TypeParam
38
-
39
- @method_type_cache: Hash[RBS::MethodType, Interface::MethodType]
40
-
41
- def method_type: (RBS::MethodType method_type, method_decls: Set[TypeInference::MethodCall::MethodDecl]) -> Interface::MethodType
42
-
43
- def method_type_1: (Interface::MethodType method_type) -> RBS::MethodType
44
-
45
- def unfold: (TypeName type_name, Array[t] args) -> t
46
-
47
- # Unfold type alias one step, or returns itself
48
- #
49
- def expand_alias: (t `type`) -> t
50
-
51
- # Unfold type alias until non alias type
52
- #
53
- # * Unions and intersections are expanded
54
- # * Returns `nil` if it is recursive
55
- #
56
- def deep_expand_alias: (t `type`, ?recursive: Set[TypeName]) -> t?
57
-
58
- # Convert union types to array of types
59
- #
60
- def flatten_union: (t `type`, ?Array[t] acc) -> Array[t]
61
-
62
- # Partition the type components in union types to truthy ones and falsy ones
63
- #
64
- # * Returns a pair of *truthy* type and *falsy* type
65
- # * The pair may contain `nil` if given type always evaluates to truthy or falsy
66
- # * Expand (unfold) the type aliases automatically
67
- #
68
- # ```ruby
69
- # partition_union?(`Integer?`) # => [`Integer`, `nil`]
70
- # partition_union?(`Integer | String | nil | false`) # => [`Integer | String`, `nil | false`]
71
- # partition_union?(`bool`) # => [`bool`, `bool`]
72
- # partition_union?(`nil`) # => [nil, `nil`]
73
- # ```
74
- #
75
- def partition_union: (Types::t) -> [Types::t?, Types::t?]
76
-
77
- # Returns a type that doesn't have `nil` in the union component
78
- #
79
- # * Returns `nil` if given type is `nil`
80
- # * Expand (unfold) the type aliases automatically
81
- #
82
- # ```ruby
83
- # unwrap_optional(`String?`) # => `String`
84
- # unwrap_optional(`String | Integer | false | nil`) # => `String | Integer | false`
85
- # unwrap_optional(`nil`) # => nil
86
- # ```
87
- #
88
- def unwrap_optional: (Types::t) -> Types::t?
89
-
90
- def module_name?: (TypeName type_name) -> bool
91
-
92
- def class_name?: (TypeName type_name) -> bool
93
-
94
- def env: () -> RBS::Environment
95
-
96
- def absolute_type: (t `type`, context: RBS::Resolver::context) -> t
97
-
98
- def absolute_type_name: (TypeName type_name, context: RBS::Resolver::context) -> TypeName?
99
-
100
- def instance_type: (TypeName type_name, ?args: Array[t]?, ?location: untyped?) -> t
101
-
102
- def try_singleton_type: (t) -> t?
103
-
104
- def try_instance_type: (t) -> t?
105
-
106
- def normalize_type: (t) -> t
107
- end
108
- end
109
- end
110
- end