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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +43 -0
- data/README.md +18 -0
- data/guides/src/gem-rbs-collection/gem-rbs-collection.md +7 -24
- data/lib/steep/rake_task.rb +132 -0
- data/lib/steep/type_construction.rb +1 -0
- data/lib/steep/version.rb +1 -1
- data/steep.gemspec +4 -1
- metadata +4 -143
- data/.github/dependabot.yml +0 -28
- data/.github/workflows/ruby-windows.yml +0 -35
- data/.github/workflows/ruby.yml +0 -32
- data/.vscode/steep-shared.code-snippets +0 -41
- data/Gemfile +0 -14
- data/Gemfile.lock +0 -104
- data/Gemfile.steep +0 -0
- data/gemfile_steep/Gemfile +0 -3
- data/gemfile_steep/Gemfile.lock +0 -77
- data/rbs_collection.steep.lock.yaml +0 -108
- data/rbs_collection.steep.yaml +0 -23
- data/sig/shims/bundler.rbs +0 -3
- data/sig/shims/concurrent-ruby.rbs +0 -39
- data/sig/shims/exception.rbs +0 -4
- data/sig/shims/language-server_protocol.rbs +0 -450
- data/sig/shims/parser/comment.rbs +0 -33
- data/sig/shims/parser/nodes.rbs +0 -252
- data/sig/shims/parser/source/map.rbs +0 -146
- data/sig/shims/parser/source/range.rbs +0 -237
- data/sig/shims/parser.rbs +0 -69
- data/sig/shims/string.rbs +0 -4
- data/sig/shims/tagged_logging.rbs +0 -6
- data/sig/shims/yaml.rbs +0 -4
- data/sig/steep/annotation_parser.rbs +0 -60
- data/sig/steep/ast/annotation/collection.rbs +0 -78
- data/sig/steep/ast/annotation.rbs +0 -121
- data/sig/steep/ast/builtin.rbs +0 -69
- data/sig/steep/ast/ignore.rbs +0 -66
- data/sig/steep/ast/node/type_application.rbs +0 -31
- data/sig/steep/ast/node/type_assertion.rbs +0 -32
- data/sig/steep/ast/types/any.rbs +0 -29
- data/sig/steep/ast/types/boolean.rbs +0 -31
- data/sig/steep/ast/types/bot.rbs +0 -29
- data/sig/steep/ast/types/class.rbs +0 -33
- data/sig/steep/ast/types/factory.rbs +0 -110
- data/sig/steep/ast/types/helper.rbs +0 -24
- data/sig/steep/ast/types/instance.rbs +0 -33
- data/sig/steep/ast/types/intersection.rbs +0 -40
- data/sig/steep/ast/types/literal.rbs +0 -35
- data/sig/steep/ast/types/logic.rbs +0 -83
- data/sig/steep/ast/types/name.rbs +0 -84
- data/sig/steep/ast/types/nil.rbs +0 -31
- data/sig/steep/ast/types/proc.rbs +0 -53
- data/sig/steep/ast/types/record.rbs +0 -39
- data/sig/steep/ast/types/self.rbs +0 -33
- data/sig/steep/ast/types/top.rbs +0 -29
- data/sig/steep/ast/types/tuple.rbs +0 -37
- data/sig/steep/ast/types/union.rbs +0 -40
- data/sig/steep/ast/types/var.rbs +0 -42
- data/sig/steep/ast/types/void.rbs +0 -29
- data/sig/steep/ast/types.rbs +0 -16
- data/sig/steep/cli.rbs +0 -55
- data/sig/steep/diagnostic/deprecated/else_on_exhaustive_case.rbs +0 -13
- data/sig/steep/diagnostic/deprecated/unknown_constant_assigned.rbs +0 -15
- data/sig/steep/diagnostic/helper.rbs +0 -15
- data/sig/steep/diagnostic/lsp_formatter.rbs +0 -36
- data/sig/steep/diagnostic/ruby.rbs +0 -703
- data/sig/steep/diagnostic/signature.rbs +0 -252
- data/sig/steep/drivers/annotations.rbs +0 -17
- data/sig/steep/drivers/check.rbs +0 -33
- data/sig/steep/drivers/checkfile.rbs +0 -27
- data/sig/steep/drivers/diagnostic_printer.rbs +0 -25
- data/sig/steep/drivers/init.rbs +0 -19
- data/sig/steep/drivers/langserver.rbs +0 -36
- data/sig/steep/drivers/print_project.rbs +0 -15
- data/sig/steep/drivers/stats.rbs +0 -47
- data/sig/steep/drivers/utils/driver_helper.rbs +0 -25
- data/sig/steep/drivers/utils/jobs_option.rbs +0 -19
- data/sig/steep/drivers/validate.rbs +0 -15
- data/sig/steep/drivers/vendor.rbs +0 -19
- data/sig/steep/drivers/watch.rbs +0 -27
- data/sig/steep/drivers/worker.rbs +0 -29
- data/sig/steep/equatable.rbs +0 -11
- data/sig/steep/expectations.rbs +0 -72
- data/sig/steep/index/rbs_index.rbs +0 -141
- data/sig/steep/index/signature_symbol_provider.rbs +0 -41
- data/sig/steep/index/source_index.rbs +0 -63
- data/sig/steep/interface/block.rbs +0 -41
- data/sig/steep/interface/builder.rbs +0 -111
- data/sig/steep/interface/function.rbs +0 -271
- data/sig/steep/interface/method_type.rbs +0 -105
- data/sig/steep/interface/shape.rbs +0 -80
- data/sig/steep/interface/substitution.rbs +0 -51
- data/sig/steep/interface/type_param.rbs +0 -43
- data/sig/steep/method_name.rbs +0 -30
- data/sig/steep/module_helper.rbs +0 -16
- data/sig/steep/node_helper.rbs +0 -91
- data/sig/steep/path_helper.rbs +0 -15
- data/sig/steep/project/dsl.rbs +0 -108
- data/sig/steep/project/options.rbs +0 -47
- data/sig/steep/project/pattern.rbs +0 -47
- data/sig/steep/project/target.rbs +0 -25
- data/sig/steep/project.rbs +0 -26
- data/sig/steep/range_extension.rbs +0 -7
- data/sig/steep/server/base_worker.rbs +0 -49
- data/sig/steep/server/change_buffer.rbs +0 -38
- data/sig/steep/server/delay_queue.rbs +0 -37
- data/sig/steep/server/interaction_worker.rbs +0 -90
- data/sig/steep/server/lsp_formatter.rbs +0 -63
- data/sig/steep/server/master.rbs +0 -299
- data/sig/steep/server/type_check_worker.rbs +0 -141
- data/sig/steep/server/worker_process.rbs +0 -97
- data/sig/steep/services/completion_provider.rbs +0 -264
- data/sig/steep/services/content_change.rbs +0 -37
- data/sig/steep/services/file_loader.rbs +0 -21
- data/sig/steep/services/goto_service.rbs +0 -106
- data/sig/steep/services/hover_provider/rbs.rbs +0 -47
- data/sig/steep/services/hover_provider/ruby.rbs +0 -127
- data/sig/steep/services/hover_provider/singleton_methods.rbs +0 -11
- data/sig/steep/services/path_assignment.rbs +0 -21
- data/sig/steep/services/signature_help_provider.rbs +0 -51
- data/sig/steep/services/signature_service.rbs +0 -156
- data/sig/steep/services/stats_calculator.rbs +0 -41
- data/sig/steep/services/type_check_service.rbs +0 -112
- data/sig/steep/services/type_name_completion.rbs +0 -135
- data/sig/steep/signature/validator.rbs +0 -85
- data/sig/steep/source/ignore_ranges.rbs +0 -38
- data/sig/steep/source.rbs +0 -105
- data/sig/steep/subtyping/cache.rbs +0 -17
- data/sig/steep/subtyping/check.rbs +0 -131
- data/sig/steep/subtyping/constraints.rbs +0 -111
- data/sig/steep/subtyping/relation.rbs +0 -63
- data/sig/steep/subtyping/result.rbs +0 -179
- data/sig/steep/subtyping/variable_variance.rbs +0 -25
- data/sig/steep/thread_waiter.rbs +0 -13
- data/sig/steep/type_construction.rbs +0 -542
- data/sig/steep/type_inference/block_params.rbs +0 -170
- data/sig/steep/type_inference/case_when.rbs +0 -130
- data/sig/steep/type_inference/constant_env.rbs +0 -29
- data/sig/steep/type_inference/context.rbs +0 -216
- data/sig/steep/type_inference/context_array.rbs +0 -38
- data/sig/steep/type_inference/logic_type_interpreter.rbs +0 -108
- data/sig/steep/type_inference/method_call.rbs +0 -124
- data/sig/steep/type_inference/method_params.rbs +0 -127
- data/sig/steep/type_inference/multiple_assignment.rbs +0 -76
- data/sig/steep/type_inference/send_args.rbs +0 -243
- data/sig/steep/type_inference/type_env.rbs +0 -160
- data/sig/steep/type_inference/type_env_builder.rbs +0 -81
- data/sig/steep/typing.rbs +0 -75
- 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
|
data/sig/steep/ast/builtin.rbs
DELETED
|
@@ -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
|
data/sig/steep/ast/ignore.rbs
DELETED
|
@@ -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
|
data/sig/steep/ast/types/any.rbs
DELETED
|
@@ -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
|
data/sig/steep/ast/types/bot.rbs
DELETED
|
@@ -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
|