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
@@ -1,131 +0,0 @@
1
- module Steep
2
- module Subtyping
3
- class Check
4
- ABORT_LIMIT: Integer
5
-
6
- attr_reader builder: Interface::Builder
7
-
8
- attr_reader cache: Cache
9
-
10
- @assumptions: Set[Relation[untyped]]?
11
-
12
- @bounds: Array[Hash[Symbol, AST::Types::t?]]
13
-
14
- @self_type: AST::Types::t?
15
-
16
- @instance_type: AST::Types::t?
17
-
18
- @class_type: AST::Types::t?
19
-
20
- @constraints: Constraints?
21
-
22
- def initialize: (builder: Interface::Builder) -> void
23
-
24
- def factory: () -> AST::Types::Factory
25
-
26
- def with_context: [A] (self_type: AST::Types::t?, instance_type: AST::Types::t?, class_type: AST::Types::t?, constraints: Constraints?) { () -> A } -> A
27
-
28
- def self_type: () -> AST::Types::t
29
-
30
- def instance_type: () -> AST::Types::t
31
-
32
- def class_type: () -> AST::Types::t
33
-
34
- def constraints: () -> Constraints
35
-
36
- def push_variable_bounds: [A] (Array[Interface::TypeParam] | Hash[Symbol, AST::Types::t?] params) { () -> A } -> A
37
-
38
- def variable_upper_bound: (Symbol name) -> AST::Types::t?
39
-
40
- def variable_upper_bounds: () -> Hash[Symbol, AST::Types::t?]
41
-
42
- def push_assumption: [A] (Relation[untyped] relation) { () -> A } -> A
43
-
44
- def assumptions: () -> Set[Relation[untyped]]
45
-
46
- def each_ancestor: (RBS::DefinitionBuilder::AncestorBuilder::OneAncestors ancestors) { (RBS::Definition::Ancestor::t) -> void } -> void
47
- | (RBS::DefinitionBuilder::AncestorBuilder::OneAncestors ancestors) -> Enumerator[RBS::Definition::Ancestor::t, void]
48
-
49
- type super_type = AST::Types::Name::Instance | AST::Types::Name::Interface | AST::Types::Name::Singleton
50
-
51
- def instance_super_types: (RBS::TypeName type_name, args: Array[AST::Types::t]) -> Array[super_type]
52
-
53
- def singleton_super_types: (RBS::TypeName type_name) -> Array[super_type]
54
-
55
- def check: (Relation[AST::Types::t] relation, constraints: Constraints, self_type: AST::Types::t?, instance_type: AST::Types::t?, class_type: AST::Types::t?) -> Result::t
56
-
57
- def check_type: (Relation[AST::Types::t] relation) -> Result::t
58
-
59
- def cache_bounds: (Relation[AST::Types::t] relation) -> Hash[Symbol, AST::Types::t?]
60
-
61
- def alias?: (AST::Types::t `type`) -> bool
62
-
63
- def cacheable?: (Relation[AST::Types::t] relation) -> bool
64
-
65
- def true_type?: (AST::Types::t `type`) -> bool
66
-
67
- def false_type?: (AST::Types::t `type`) -> bool
68
-
69
- include Result::Helper
70
-
71
- def check_type0: (Relation[AST::Types::t] relation) -> Result::t
72
-
73
- def definition_for_type: (AST::Types::t `type`) -> RBS::Definition
74
-
75
- # Returns true if given `type` is with one or more type arguments.
76
- #
77
- def arg_type?: (AST::Types::t `type`) -> bool
78
-
79
- type application_type = AST::Types::Name::Instance | AST::Types::Name::Interface | AST::Types::Name::Alias
80
-
81
- def check_type_arg: (Relation[application_type] relation) -> untyped
82
-
83
- def same_type?: (Relation[AST::Types::t] relation) -> bool
84
-
85
- def check_interface: (Relation[Interface::Shape] relation) -> Result::t
86
-
87
- def check_method: (Symbol name, Relation[Interface::Shape::Entry] relation) -> Result::t
88
-
89
- def check_generic_method_type: (Symbol name, Relation[Interface::MethodType] relation) -> Result::t
90
-
91
- def check_constraints: (Relation[untyped] relation, variables: Enumerable[Symbol], variance: VariableVariance) -> Result::t
92
-
93
- def check_method_type: (Symbol name, Relation[Interface::MethodType] relation) -> Result::t
94
-
95
- # Receives subtyping relation of blocks `b <: b'` where `b` and `b'` are expanded from
96
- # subtyping relation of two method types `(...) _b_ -> T <: (...) _b'_ -> S`.
97
- #
98
- # Returns `true` is the relation is satisfied immediately.
99
- # Returns a Relation when the given relation can be expanded to relation between Interface::Block.
100
- # Returns a failure otherwise.
101
- #
102
- def expand_block_given: (Symbol name, Relation[Interface::Block?] relation) -> (Relation[Interface::Block] | true | Result::Failure)
103
-
104
- # Receives a subtyping relation between self bindings `S <: S'` that is included in procs or blocks as:
105
- #
106
- # * `^() [self: S] -> T <: ^() [self: S'] -> T` (proc)
107
- # * `() { () [self: S'] -> T } -> T <: () { () [self: S] -> T } -> T` (block in method type)
108
- #
109
- def check_self_type_binding: (Relation[untyped], AST::Types::t? sub_self, AST::Types::t? super_self) -> Result::t?
110
-
111
- def check_function: (Symbol name, Relation[Interface::Function] relation) -> Result::t
112
-
113
- def check_method_params: (Symbol name, Relation[Interface::Function::Params] relation) -> Result::t
114
-
115
- # Returns `nil` when given two method_types are structually comparable.
116
- # Returns a failure otherwise.
117
- #
118
- def match_method_type_fails?: (Symbol name, Interface::MethodType method_type1, Interface::MethodType method_type2) -> (nil | Result::t)
119
-
120
- def match_params: (Symbol name, Relation[Interface::Function::Params] relation) -> (Array[[AST::Types::t, AST::Types::t]] | Result::t)
121
-
122
- def expand_alias: (AST::Types::t `type`) -> AST::Types::t
123
-
124
- # Returns the shortest type paths for one of the _unknown_ type variables.
125
- # Returns nil if there is no path.
126
- def hole_path: (AST::Types::t `type`, ?Array[AST::Types::t] path) -> Array[AST::Types::t]?
127
-
128
- def Relation: [T < Relation::_Subject] (T sub, T sup) -> Relation[T]
129
- end
130
- end
131
- end
@@ -1,111 +0,0 @@
1
- module Steep
2
- module Subtyping
3
- class Constraints
4
- class UnsatisfiedInvariantError < StandardError
5
- attr_reader constraints: untyped
6
-
7
- attr_reader reason: untyped
8
-
9
- def initialize: (reason: untyped, constraints: untyped) -> void
10
-
11
- class VariablesUnknownsNotDisjoint
12
- attr_reader vars: untyped
13
-
14
- def initialize: (vars: untyped) -> void
15
-
16
- def message: () -> ::String
17
- end
18
-
19
- class VariablesFreeVariablesNotDisjoint
20
- attr_reader var: untyped
21
-
22
- attr_reader lower_bound: untyped
23
-
24
- attr_reader upper_bound: untyped
25
-
26
- def initialize: (?var: untyped?, ?lower_bound: untyped?, ?upper_bound: untyped?) -> void
27
-
28
- def message: () -> ::String
29
- end
30
-
31
- class UnknownsFreeVariableNotDisjoint
32
- attr_reader var: untyped
33
-
34
- attr_reader upper_bound: untyped
35
-
36
- attr_reader lower_bound: untyped
37
-
38
- def initialize: (var: untyped, lower_bound: untyped, upper_bound: untyped) -> void
39
-
40
- def message: () -> ::String
41
- end
42
- end
43
-
44
- class UnsatisfiableConstraint < StandardError
45
- attr_reader var: untyped
46
-
47
- attr_reader sub_type: untyped
48
-
49
- attr_reader super_type: untyped
50
-
51
- attr_reader result: untyped
52
-
53
- def initialize: (var: untyped, sub_type: untyped, super_type: untyped, result: untyped) -> void
54
- end
55
-
56
- class Context
57
- attr_reader variance: untyped
58
-
59
- attr_reader self_type: AST::Types::t
60
-
61
- attr_reader instance_type: AST::Types::t
62
-
63
- attr_reader class_type: AST::Types::t
64
-
65
- def initialize: (variance: untyped, self_type: AST::Types::t, instance_type: AST::Types::t, class_type: AST::Types::t) -> void
66
- end
67
-
68
- attr_reader dictionary: Hash[Symbol, [Set[AST::Types::t], Set[AST::Types::t], Set[AST::Types::t]]]
69
-
70
- attr_reader vars: Set[Symbol]
71
-
72
- def initialize: (unknowns: _Each[Symbol]) -> void
73
-
74
- def self.empty: () -> Constraints
75
-
76
- def add_var: (*Symbol vars) -> void
77
-
78
- def add: (Symbol var, ?sub_type: untyped?, ?super_type: untyped?, ?skip: bool) -> untyped
79
-
80
- def eliminate_variable: (AST::Types::t `type`, to: AST::Types::t) -> AST::Types::t
81
-
82
- def unknown?: (Symbol var) -> bool
83
-
84
- def unknowns: () -> Set[Symbol]
85
-
86
- def unknown!: (Symbol var) -> void
87
-
88
- def empty?: () -> bool
89
-
90
- def upper_bound: (Symbol var, ?skip: bool) -> AST::Types::t
91
-
92
- def lower_bound: (Symbol var, ?skip: bool) -> AST::Types::t
93
-
94
- def solution: (Check checker, variables: Enumerable[AST::Types::variable], variance: VariableVariance, self_type: AST::Types::t, instance_type: AST::Types::t, class_type: AST::Types::t) -> Interface::Substitution
95
- | (Check checker, variables: Enumerable[AST::Types::variable], context: Context) -> Interface::Substitution
96
-
97
- def has_constraint?: (Symbol var) -> bool
98
-
99
- def each: () { ([Symbol, AST::Types::t, AST::Types::t]) -> void } -> void
100
- | () -> Enumerator[[Symbol, AST::Types::t, AST::Types::t], void]
101
-
102
- def to_s: () -> ::String
103
-
104
- private
105
-
106
- def lower_bound_types: (Symbol var_name) -> Set[AST::Types::t]
107
-
108
- def upper_bound_types: (Symbol var_name) -> Set[AST::Types::t]
109
- end
110
- end
111
- end
@@ -1,63 +0,0 @@
1
- module Steep
2
- module Subtyping
3
- class Relation[out Subject < _Subject]
4
- interface _Subject
5
- def hash: () -> Integer
6
-
7
- def is_a?: (Module) -> bool
8
-
9
- def class: () -> Class
10
-
11
- def !: () -> bool
12
- end
13
-
14
- attr_reader sub_type: Subject
15
-
16
- attr_reader super_type: Subject
17
-
18
- def initialize: (sub_type: Subject, super_type: Subject) -> void
19
-
20
- def hash: () -> Integer
21
-
22
- def ==: (untyped other) -> bool
23
-
24
- alias eql? ==
25
-
26
- def to_s: () -> ::String
27
-
28
- def to_ary: () -> [Subject, Subject]
29
-
30
- def type?: () -> bool
31
-
32
- def interface?: () -> bool
33
-
34
- def method?: () -> bool
35
-
36
- def function?: () -> bool
37
-
38
- def params?: () -> bool
39
-
40
- def block?: () -> bool
41
-
42
- type relation_type = :type | :interface | :method | :function | :params | :block
43
-
44
- def assert_type: (relation_type `type`) -> void
45
-
46
- def type!: () -> void
47
-
48
- def interface!: () -> void
49
-
50
- def method!: () -> void
51
-
52
- def function!: () -> void
53
-
54
- def params!: () -> void
55
-
56
- def block!: () -> void
57
-
58
- def map: [T < Object] () { (Subject) -> T } -> Relation[T]
59
-
60
- def flip: () -> Relation[Subject]
61
- end
62
- end
63
- end
@@ -1,179 +0,0 @@
1
- module Steep
2
- module Subtyping
3
- module Result
4
- type t = Skip | Expand | All | Any | Success | Failure
5
-
6
- class Base
7
- attr_reader relation: Relation[untyped]
8
-
9
- def initialize: (Relation[untyped] relation) -> void
10
-
11
- def failure?: () -> bool
12
-
13
- def success?: () -> bool
14
-
15
- def then: () { (self) -> void } -> self
16
-
17
- def else: () { (self) -> void } -> self
18
-
19
- def failure_path: (?Array[t] path) -> Array[t]?
20
- end
21
-
22
- class Skip < Base
23
- def success?: () -> false
24
-
25
- def failure?: () -> false
26
-
27
- def failure_path: (?untyped path) -> untyped
28
- end
29
-
30
- class Expand < Base
31
- attr_reader child: t
32
-
33
- def initialize: (Relation[untyped] relation) { (Relation[untyped]) -> t } -> void
34
-
35
- def success?: () -> bool
36
-
37
- def failure_path: (?Array[t] path) -> Array[t]?
38
- end
39
-
40
- class All < Base
41
- attr_reader branches: Array[t]
42
-
43
- def initialize: (Relation[untyped] relation) -> void
44
-
45
- @failure: bool
46
-
47
- # Returns `false` if no future `#add` changes the result.
48
- def add: [T < Relation::_Subject] (*Relation[T] relations) { (Relation[T]) -> t? } -> bool
49
-
50
- # Returns `false` if no future `#add` changes the result.
51
- def add_result: (t?) -> bool
52
-
53
- def success?: () -> bool
54
-
55
- def failure?: () -> bool
56
-
57
- def failure_path: (?Array[t] path) -> Array[t]?
58
- end
59
-
60
- class Any < Base
61
- attr_reader branches: Array[t]
62
-
63
- def initialize: (Relation[untyped] relation) -> void
64
-
65
- @success: bool
66
-
67
- # Returns `false` if no future `#add` changes the result.
68
- def add: [T < Object] (*Relation[T] relations) { (Relation[T]) -> t } -> bool
69
-
70
- def success?: () -> bool
71
-
72
- def failure_path: (?Array[t] path) -> Array[t]?
73
- end
74
-
75
- class Success < Base
76
- def success?: () -> true
77
-
78
- def failure_path: (?Array[t] path) -> Array[t]?
79
- end
80
-
81
- class Failure < Base
82
- type error = MethodMissingError | BlockMismatchError | ParameterMismatchError
83
- | UnknownPairError | PolyMethodSubtyping | UnsatisfiedConstraints
84
- | SelfBindingMismatch | LoopAbort
85
-
86
- class MethodMissingError
87
- attr_reader name: untyped
88
-
89
- def initialize: (name: untyped) -> void
90
-
91
- def message: () -> ::String
92
- end
93
-
94
- class BlockMismatchError
95
- attr_reader name: untyped
96
-
97
- def initialize: (name: untyped) -> void
98
-
99
- def message: () -> ::String
100
- end
101
-
102
- class ParameterMismatchError
103
- attr_reader name: untyped
104
-
105
- def initialize: (name: untyped) -> void
106
-
107
- def message: () -> ::String
108
- end
109
-
110
- class UnknownPairError
111
- attr_reader relation: untyped
112
-
113
- def initialize: (relation: untyped) -> void
114
-
115
- def message: () -> ::String
116
- end
117
-
118
- class PolyMethodSubtyping
119
- attr_reader name: untyped
120
-
121
- def initialize: (name: untyped) -> void
122
-
123
- def message: () -> ::String
124
- end
125
-
126
- class UnsatisfiedConstraints
127
- attr_reader error: untyped
128
-
129
- def initialize: (untyped error) -> void
130
-
131
- def var: () -> untyped
132
-
133
- def sub_type: () -> untyped
134
-
135
- def super_type: () -> untyped
136
-
137
- def result: () -> untyped
138
-
139
- def message: () -> ::String
140
- end
141
-
142
- class SelfBindingMismatch
143
- def initialize: () -> void
144
-
145
- def message: () -> String
146
- end
147
-
148
- class LoopAbort
149
- def message: () -> String
150
- end
151
-
152
- attr_reader error: error
153
-
154
- def initialize: (Relation[untyped] relation, error error) -> void
155
-
156
- def success?: () -> false
157
-
158
- def failure_path: (?Array[t] path) -> Array[t]?
159
- end
160
-
161
- module Helper
162
- def Skip: (Relation[untyped] relation) -> Skip
163
-
164
- def Expand: [T < Object] (Relation[T] relation) { (Relation[T]) -> t } -> Expand
165
-
166
- def All: (Relation[untyped] relation) { (All) -> void } -> All
167
-
168
- def Any: (Relation[untyped] relation) { (Any) -> void } -> Any
169
-
170
- def Success: (Relation[untyped] relation) -> Success
171
-
172
- alias success Success
173
-
174
- def Failure: (Relation[untyped] relation, Failure::error) -> Failure
175
- | (Relation[untyped]) { () -> Failure::error } -> Failure
176
- end
177
- end
178
- end
179
- end
@@ -1,25 +0,0 @@
1
- module Steep
2
- module Subtyping
3
- class VariableVariance
4
- attr_reader covariants: Set[Symbol]
5
-
6
- attr_reader contravariants: Set[Symbol]
7
-
8
- def initialize: (covariants: Set[Symbol], contravariants: Set[Symbol]) -> void
9
-
10
- def covariant?: (Symbol var) -> bool
11
-
12
- def contravariant?: (Symbol var) -> bool
13
-
14
- def invariant?: (Symbol var) -> bool
15
-
16
- def self.from_type: (AST::Types::t) -> VariableVariance
17
-
18
- def self.from_method_type: (Interface::MethodType method_type) -> VariableVariance
19
-
20
- def self.add_params: (Interface::Function::Params params, block: bool, covariants: Set[Symbol], contravariants: Set[Symbol]) -> void
21
-
22
- def self.add_type: (AST::Types::t `type`, variance: :covariant | :contravariant | :invariant, covariants: Set[Symbol], contravariants: Set[Symbol]) -> void
23
- end
24
- end
25
- end
@@ -1,13 +0,0 @@
1
- module Steep
2
- class ThreadWaiter[A]
3
- attr_reader objects: Array[A]
4
-
5
- attr_reader queue: Thread::Queue
6
-
7
- attr_reader waiter_threads: Set[Thread]
8
-
9
- def initialize: (Array[A]) { (A) -> Thread } -> void
10
-
11
- def wait_one: () -> Thread?
12
- end
13
- end