steep 1.7.0.dev.4 → 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 (149) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -0
  3. data/README.md +18 -0
  4. data/guides/src/gem-rbs-collection/gem-rbs-collection.md +7 -24
  5. data/lib/steep/rake_task.rb +132 -0
  6. data/lib/steep/type_construction.rb +1 -0
  7. data/lib/steep/version.rb +1 -1
  8. data/steep.gemspec +4 -1
  9. metadata +4 -143
  10. data/.github/dependabot.yml +0 -28
  11. data/.github/workflows/ruby-windows.yml +0 -35
  12. data/.github/workflows/ruby.yml +0 -32
  13. data/.vscode/steep-shared.code-snippets +0 -41
  14. data/Gemfile +0 -14
  15. data/Gemfile.lock +0 -104
  16. data/Gemfile.steep +0 -0
  17. data/gemfile_steep/Gemfile +0 -3
  18. data/gemfile_steep/Gemfile.lock +0 -77
  19. data/rbs_collection.steep.lock.yaml +0 -108
  20. data/rbs_collection.steep.yaml +0 -23
  21. data/sig/shims/bundler.rbs +0 -3
  22. data/sig/shims/concurrent-ruby.rbs +0 -39
  23. data/sig/shims/exception.rbs +0 -4
  24. data/sig/shims/language-server_protocol.rbs +0 -450
  25. data/sig/shims/parser/comment.rbs +0 -33
  26. data/sig/shims/parser/nodes.rbs +0 -252
  27. data/sig/shims/parser/source/map.rbs +0 -146
  28. data/sig/shims/parser/source/range.rbs +0 -237
  29. data/sig/shims/parser.rbs +0 -69
  30. data/sig/shims/string.rbs +0 -4
  31. data/sig/shims/tagged_logging.rbs +0 -6
  32. data/sig/shims/yaml.rbs +0 -4
  33. data/sig/steep/annotation_parser.rbs +0 -60
  34. data/sig/steep/ast/annotation/collection.rbs +0 -78
  35. data/sig/steep/ast/annotation.rbs +0 -121
  36. data/sig/steep/ast/builtin.rbs +0 -69
  37. data/sig/steep/ast/ignore.rbs +0 -66
  38. data/sig/steep/ast/node/type_application.rbs +0 -31
  39. data/sig/steep/ast/node/type_assertion.rbs +0 -32
  40. data/sig/steep/ast/types/any.rbs +0 -29
  41. data/sig/steep/ast/types/boolean.rbs +0 -31
  42. data/sig/steep/ast/types/bot.rbs +0 -29
  43. data/sig/steep/ast/types/class.rbs +0 -33
  44. data/sig/steep/ast/types/factory.rbs +0 -110
  45. data/sig/steep/ast/types/helper.rbs +0 -24
  46. data/sig/steep/ast/types/instance.rbs +0 -33
  47. data/sig/steep/ast/types/intersection.rbs +0 -40
  48. data/sig/steep/ast/types/literal.rbs +0 -35
  49. data/sig/steep/ast/types/logic.rbs +0 -83
  50. data/sig/steep/ast/types/name.rbs +0 -84
  51. data/sig/steep/ast/types/nil.rbs +0 -31
  52. data/sig/steep/ast/types/proc.rbs +0 -53
  53. data/sig/steep/ast/types/record.rbs +0 -39
  54. data/sig/steep/ast/types/self.rbs +0 -33
  55. data/sig/steep/ast/types/top.rbs +0 -29
  56. data/sig/steep/ast/types/tuple.rbs +0 -37
  57. data/sig/steep/ast/types/union.rbs +0 -40
  58. data/sig/steep/ast/types/var.rbs +0 -42
  59. data/sig/steep/ast/types/void.rbs +0 -29
  60. data/sig/steep/ast/types.rbs +0 -16
  61. data/sig/steep/cli.rbs +0 -55
  62. data/sig/steep/diagnostic/deprecated/else_on_exhaustive_case.rbs +0 -13
  63. data/sig/steep/diagnostic/deprecated/unknown_constant_assigned.rbs +0 -15
  64. data/sig/steep/diagnostic/helper.rbs +0 -15
  65. data/sig/steep/diagnostic/lsp_formatter.rbs +0 -36
  66. data/sig/steep/diagnostic/ruby.rbs +0 -703
  67. data/sig/steep/diagnostic/signature.rbs +0 -252
  68. data/sig/steep/drivers/annotations.rbs +0 -17
  69. data/sig/steep/drivers/check.rbs +0 -33
  70. data/sig/steep/drivers/checkfile.rbs +0 -27
  71. data/sig/steep/drivers/diagnostic_printer.rbs +0 -25
  72. data/sig/steep/drivers/init.rbs +0 -19
  73. data/sig/steep/drivers/langserver.rbs +0 -36
  74. data/sig/steep/drivers/print_project.rbs +0 -15
  75. data/sig/steep/drivers/stats.rbs +0 -47
  76. data/sig/steep/drivers/utils/driver_helper.rbs +0 -25
  77. data/sig/steep/drivers/utils/jobs_option.rbs +0 -19
  78. data/sig/steep/drivers/validate.rbs +0 -15
  79. data/sig/steep/drivers/vendor.rbs +0 -19
  80. data/sig/steep/drivers/watch.rbs +0 -27
  81. data/sig/steep/drivers/worker.rbs +0 -29
  82. data/sig/steep/equatable.rbs +0 -11
  83. data/sig/steep/expectations.rbs +0 -72
  84. data/sig/steep/index/rbs_index.rbs +0 -141
  85. data/sig/steep/index/signature_symbol_provider.rbs +0 -41
  86. data/sig/steep/index/source_index.rbs +0 -63
  87. data/sig/steep/interface/block.rbs +0 -41
  88. data/sig/steep/interface/builder.rbs +0 -111
  89. data/sig/steep/interface/function.rbs +0 -271
  90. data/sig/steep/interface/method_type.rbs +0 -105
  91. data/sig/steep/interface/shape.rbs +0 -80
  92. data/sig/steep/interface/substitution.rbs +0 -51
  93. data/sig/steep/interface/type_param.rbs +0 -43
  94. data/sig/steep/method_name.rbs +0 -30
  95. data/sig/steep/module_helper.rbs +0 -16
  96. data/sig/steep/node_helper.rbs +0 -91
  97. data/sig/steep/path_helper.rbs +0 -15
  98. data/sig/steep/project/dsl.rbs +0 -108
  99. data/sig/steep/project/options.rbs +0 -47
  100. data/sig/steep/project/pattern.rbs +0 -47
  101. data/sig/steep/project/target.rbs +0 -25
  102. data/sig/steep/project.rbs +0 -26
  103. data/sig/steep/range_extension.rbs +0 -7
  104. data/sig/steep/server/base_worker.rbs +0 -49
  105. data/sig/steep/server/change_buffer.rbs +0 -38
  106. data/sig/steep/server/delay_queue.rbs +0 -37
  107. data/sig/steep/server/interaction_worker.rbs +0 -90
  108. data/sig/steep/server/lsp_formatter.rbs +0 -63
  109. data/sig/steep/server/master.rbs +0 -299
  110. data/sig/steep/server/type_check_worker.rbs +0 -141
  111. data/sig/steep/server/worker_process.rbs +0 -97
  112. data/sig/steep/services/completion_provider.rbs +0 -264
  113. data/sig/steep/services/content_change.rbs +0 -37
  114. data/sig/steep/services/file_loader.rbs +0 -21
  115. data/sig/steep/services/goto_service.rbs +0 -106
  116. data/sig/steep/services/hover_provider/rbs.rbs +0 -47
  117. data/sig/steep/services/hover_provider/ruby.rbs +0 -127
  118. data/sig/steep/services/hover_provider/singleton_methods.rbs +0 -11
  119. data/sig/steep/services/path_assignment.rbs +0 -21
  120. data/sig/steep/services/signature_help_provider.rbs +0 -51
  121. data/sig/steep/services/signature_service.rbs +0 -156
  122. data/sig/steep/services/stats_calculator.rbs +0 -41
  123. data/sig/steep/services/type_check_service.rbs +0 -112
  124. data/sig/steep/services/type_name_completion.rbs +0 -135
  125. data/sig/steep/signature/validator.rbs +0 -85
  126. data/sig/steep/source/ignore_ranges.rbs +0 -38
  127. data/sig/steep/source.rbs +0 -105
  128. data/sig/steep/subtyping/cache.rbs +0 -17
  129. data/sig/steep/subtyping/check.rbs +0 -131
  130. data/sig/steep/subtyping/constraints.rbs +0 -111
  131. data/sig/steep/subtyping/relation.rbs +0 -63
  132. data/sig/steep/subtyping/result.rbs +0 -179
  133. data/sig/steep/subtyping/variable_variance.rbs +0 -25
  134. data/sig/steep/thread_waiter.rbs +0 -13
  135. data/sig/steep/type_construction.rbs +0 -542
  136. data/sig/steep/type_inference/block_params.rbs +0 -170
  137. data/sig/steep/type_inference/case_when.rbs +0 -130
  138. data/sig/steep/type_inference/constant_env.rbs +0 -29
  139. data/sig/steep/type_inference/context.rbs +0 -216
  140. data/sig/steep/type_inference/context_array.rbs +0 -38
  141. data/sig/steep/type_inference/logic_type_interpreter.rbs +0 -108
  142. data/sig/steep/type_inference/method_call.rbs +0 -124
  143. data/sig/steep/type_inference/method_params.rbs +0 -127
  144. data/sig/steep/type_inference/multiple_assignment.rbs +0 -76
  145. data/sig/steep/type_inference/send_args.rbs +0 -243
  146. data/sig/steep/type_inference/type_env.rbs +0 -160
  147. data/sig/steep/type_inference/type_env_builder.rbs +0 -81
  148. data/sig/steep/typing.rbs +0 -75
  149. data/sig/steep.rbs +0 -45
@@ -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
@@ -1,24 +0,0 @@
1
- module Steep
2
- module AST
3
- module Types
4
- module Helper
5
- module ChildrenLevel
6
- def level_of_children: (Array[t] children) -> Array[Integer]
7
- end
8
-
9
- module NoFreeVariables
10
- @fvs: Set[variable]
11
-
12
- def free_variables: () -> Set[variable]
13
- end
14
-
15
- module NoChild
16
- def each_child: () { (t) -> void } -> void
17
- | () -> Enumerator[t, void]
18
-
19
- def map_type: () { (t) -> t } -> self
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,33 +0,0 @@
1
- module Steep
2
- module AST
3
- module Types
4
- class Instance
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) -> t
16
-
17
- @@fvs: Set[variable]
18
- def free_variables: () -> Set[variable]
19
-
20
- include Helper::NoChild
21
-
22
- def to_s: () -> String
23
-
24
- def level: () -> Array[Integer]
25
-
26
- def with_location: (untyped new_location) -> untyped
27
-
28
- self.@instance: Instance
29
- def self.instance: () -> Instance
30
- end
31
- end
32
- end
33
- end
@@ -1,40 +0,0 @@
1
- module Steep
2
- module AST
3
- module Types
4
- class Intersection
5
- attr_reader types: Array[t]
6
-
7
- attr_reader location: untyped
8
-
9
- def initialize: (types: Array[t], ?location: untyped?) -> void
10
-
11
- def self.build: (types: Array[t], ?location: untyped?) -> t
12
-
13
- def ==: (untyped other) -> bool
14
-
15
- @hash: Integer
16
- def hash: () -> Integer
17
-
18
- alias eql? ==
19
-
20
- def subst: (Interface::Substitution s) -> t
21
-
22
- def to_s: () -> String
23
-
24
- @fvs: Set[variable]
25
- def free_variables: () -> Set[variable]
26
-
27
- include Helper::ChildrenLevel
28
-
29
- def each_child: () { (t) -> void } -> void
30
- | () -> Enumerator[t, void]
31
-
32
- def map_type: () { (t) -> t } -> t
33
-
34
- def level: () -> Array[Integer]
35
-
36
- def with_location: (untyped new_location) -> Intersection
37
- end
38
- end
39
- end
40
- end
@@ -1,35 +0,0 @@
1
- module Steep
2
- module AST
3
- module Types
4
- class Literal
5
- attr_reader location: untyped
6
-
7
- type value = Integer | String | Symbol | TrueClass | FalseClass
8
-
9
- attr_reader value: value
10
-
11
- def initialize: (value: value, ?location: untyped?) -> void
12
-
13
- def ==: (untyped other) -> bool
14
-
15
- def hash: () -> Integer
16
-
17
- alias eql? ==
18
-
19
- def subst: (Interface::Substitution s) -> Literal
20
-
21
- def to_s: () -> String
22
-
23
- include Helper::NoFreeVariables
24
-
25
- include Helper::NoChild
26
-
27
- def level: () -> Array[Integer]
28
-
29
- def with_location: (untyped new_location) -> Literal
30
-
31
- def back_type: () -> AST::Types::Name::Instance
32
- end
33
- end
34
- end
35
- end