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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +43 -0
- data/README.md +18 -0
- data/doc/narrowing.md +1 -1
- data/doc/shape.md +176 -0
- data/guides/src/gem-rbs-collection/gem-rbs-collection.md +7 -24
- data/lib/steep/ast/types/factory.rb +27 -18
- data/lib/steep/ast/types/proc.rb +14 -9
- data/lib/steep/interface/block.rb +1 -1
- data/lib/steep/interface/builder.rb +1 -0
- data/lib/steep/interface/function.rb +14 -6
- data/lib/steep/interface/method_type.rb +15 -7
- data/lib/steep/project/pattern.rb +1 -2
- data/lib/steep/rake_task.rb +132 -0
- data/lib/steep/server/interaction_worker.rb +6 -0
- data/lib/steep/server/lsp_formatter.rb +2 -0
- data/lib/steep/services/completion_provider.rb +1 -1
- data/lib/steep/services/file_loader.rb +15 -20
- data/lib/steep/services/signature_help_provider.rb +11 -9
- data/lib/steep/signature/validator.rb +1 -1
- data/lib/steep/subtyping/check.rb +15 -6
- data/lib/steep/subtyping/variable_variance.rb +3 -3
- data/lib/steep/type_construction.rb +186 -149
- data/lib/steep/type_inference/block_params.rb +1 -1
- data/lib/steep/type_inference/logic_type_interpreter.rb +2 -1
- data/lib/steep/type_inference/method_params.rb +16 -0
- data/lib/steep/type_inference/send_args.rb +5 -2
- data/lib/steep/version.rb +1 -1
- data/steep.gemspec +5 -2
- metadata +7 -145
- 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 -152
- data/sig/steep/interface/function.rbs +0 -270
- 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
data/sig/steep/expectations.rbs
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
class Expectations
|
|
3
|
-
type status = :expected | :missing | :unexpected
|
|
4
|
-
|
|
5
|
-
class Diagnostic
|
|
6
|
-
module DiagnosticSeverity = LanguageServer::Protocol::Constant::DiagnosticSeverity
|
|
7
|
-
|
|
8
|
-
type position = { line: Integer, character: Integer }
|
|
9
|
-
|
|
10
|
-
attr_reader start_position: position
|
|
11
|
-
|
|
12
|
-
attr_reader end_position: position
|
|
13
|
-
|
|
14
|
-
attr_reader severity: Steep::Diagnostic::LSPFormatter::severity
|
|
15
|
-
|
|
16
|
-
attr_reader message: String
|
|
17
|
-
|
|
18
|
-
attr_reader code: String
|
|
19
|
-
|
|
20
|
-
def initialize: (start_position: position, end_position: position, severity: Steep::Diagnostic::LSPFormatter::severity, message: String, code: String) -> void
|
|
21
|
-
|
|
22
|
-
def self.from_hash: (untyped) -> Diagnostic
|
|
23
|
-
|
|
24
|
-
def self.from_lsp: (untyped) -> Diagnostic
|
|
25
|
-
|
|
26
|
-
def to_hash: () -> Hash[String, untyped]
|
|
27
|
-
|
|
28
|
-
def to_lsp: () -> Hash[Symbol, untyped]
|
|
29
|
-
|
|
30
|
-
def lsp_severity: () -> Integer
|
|
31
|
-
|
|
32
|
-
def sort_key: () -> Array[untyped]
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
class TestResult
|
|
36
|
-
attr_reader path: Pathname
|
|
37
|
-
|
|
38
|
-
attr_reader expectation: Array[Diagnostic]
|
|
39
|
-
|
|
40
|
-
attr_reader actual: Array[Diagnostic]
|
|
41
|
-
|
|
42
|
-
def initialize: (path: Pathname, expectation: Array[Diagnostic], actual: Array[Diagnostic]) -> void
|
|
43
|
-
|
|
44
|
-
def empty?: () -> bool
|
|
45
|
-
|
|
46
|
-
def satisfied?: () -> bool
|
|
47
|
-
|
|
48
|
-
def each_diagnostics: () { ([status, Diagnostic]) -> void } -> void
|
|
49
|
-
| () -> Enumerator[[status, Diagnostic], void]
|
|
50
|
-
|
|
51
|
-
def expected_diagnostics: () -> Array[Diagnostic]
|
|
52
|
-
|
|
53
|
-
def unexpected_diagnostics: () -> Array[Diagnostic]
|
|
54
|
-
|
|
55
|
-
def missing_diagnostics: () -> Array[Diagnostic]
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
module LSP = LanguageServer::Protocol
|
|
59
|
-
|
|
60
|
-
attr_reader diagnostics: Hash[Pathname, Array[Diagnostic]]
|
|
61
|
-
|
|
62
|
-
def initialize: () -> void
|
|
63
|
-
|
|
64
|
-
def test: (path: Pathname, diagnostics: Array[Diagnostic]) -> TestResult
|
|
65
|
-
|
|
66
|
-
def self.empty: () -> instance
|
|
67
|
-
|
|
68
|
-
def to_yaml: () -> String
|
|
69
|
-
|
|
70
|
-
def self.load: (path: Pathname, content: String) -> instance
|
|
71
|
-
end
|
|
72
|
-
end
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module Index
|
|
3
|
-
class RBSIndex
|
|
4
|
-
class TypeEntry
|
|
5
|
-
attr_reader type_name: RBS::TypeName
|
|
6
|
-
|
|
7
|
-
type decl = RBS::AST::Declarations::Class
|
|
8
|
-
| RBS::AST::Declarations::Module
|
|
9
|
-
| RBS::AST::Declarations::Interface
|
|
10
|
-
| RBS::AST::Declarations::TypeAlias
|
|
11
|
-
| RBS::AST::Declarations::ClassAlias
|
|
12
|
-
| RBS::AST::Declarations::ModuleAlias
|
|
13
|
-
|
|
14
|
-
type ref = RBS::AST::Members::MethodDefinition
|
|
15
|
-
| RBS::AST::Members::AttrWriter
|
|
16
|
-
| RBS::AST::Members::AttrReader
|
|
17
|
-
| RBS::AST::Members::AttrAccessor
|
|
18
|
-
| RBS::AST::Members::Include
|
|
19
|
-
| RBS::AST::Members::Extend
|
|
20
|
-
| RBS::AST::Members::InstanceVariable
|
|
21
|
-
| RBS::AST::Members::ClassVariable
|
|
22
|
-
| RBS::AST::Members::ClassInstanceVariable
|
|
23
|
-
| RBS::AST::Declarations::Module
|
|
24
|
-
| RBS::AST::Declarations::Class
|
|
25
|
-
| RBS::AST::Declarations::Constant
|
|
26
|
-
| RBS::AST::Declarations::Global
|
|
27
|
-
| RBS::AST::Declarations::TypeAlias
|
|
28
|
-
| RBS::AST::Declarations::ClassAlias
|
|
29
|
-
| RBS::AST::Declarations::ModuleAlias
|
|
30
|
-
|
|
31
|
-
attr_reader declarations: Set[decl]
|
|
32
|
-
|
|
33
|
-
attr_reader references: Set[ref]
|
|
34
|
-
|
|
35
|
-
def initialize: (type_name: RBS::TypeName) -> void
|
|
36
|
-
|
|
37
|
-
def add_declaration: (decl decl) -> self
|
|
38
|
-
|
|
39
|
-
def add_reference: (ref) -> self
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
class MethodEntry
|
|
43
|
-
attr_reader method_name: method_name
|
|
44
|
-
|
|
45
|
-
type decl = RBS::AST::Members::MethodDefinition
|
|
46
|
-
| RBS::AST::Members::Alias
|
|
47
|
-
| RBS::AST::Members::AttrWriter
|
|
48
|
-
| RBS::AST::Members::AttrReader
|
|
49
|
-
| RBS::AST::Members::AttrAccessor
|
|
50
|
-
|
|
51
|
-
type ref = RBS::AST::Members::Alias
|
|
52
|
-
|
|
53
|
-
attr_reader declarations: Set[decl]
|
|
54
|
-
|
|
55
|
-
attr_reader references: Set[ref]
|
|
56
|
-
|
|
57
|
-
def initialize: (method_name: method_name) -> void
|
|
58
|
-
|
|
59
|
-
def add_declaration: (decl) -> self
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
class ConstantEntry
|
|
63
|
-
attr_reader const_name: RBS::TypeName
|
|
64
|
-
|
|
65
|
-
type decl = RBS::AST::Declarations::Constant
|
|
66
|
-
|
|
67
|
-
attr_reader declarations: Set[decl]
|
|
68
|
-
|
|
69
|
-
def initialize: (const_name: RBS::TypeName) -> void
|
|
70
|
-
|
|
71
|
-
def add_declaration: (decl) -> self
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
class GlobalEntry
|
|
75
|
-
attr_reader global_name: Symbol
|
|
76
|
-
|
|
77
|
-
type decl = RBS::AST::Declarations::Global
|
|
78
|
-
|
|
79
|
-
attr_reader declarations: Set[decl]
|
|
80
|
-
|
|
81
|
-
def initialize: (global_name: Symbol) -> void
|
|
82
|
-
|
|
83
|
-
def add_declaration: (decl) -> self
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
attr_reader type_index: Hash[RBS::TypeName, TypeEntry]
|
|
87
|
-
|
|
88
|
-
attr_reader method_index: Hash[method_name, MethodEntry]
|
|
89
|
-
|
|
90
|
-
attr_reader const_index: Hash[RBS::TypeName, ConstantEntry]
|
|
91
|
-
|
|
92
|
-
attr_reader global_index: Hash[Symbol, GlobalEntry]
|
|
93
|
-
|
|
94
|
-
def initialize: () -> void
|
|
95
|
-
|
|
96
|
-
def entry: (type_name: RBS::TypeName) -> TypeEntry
|
|
97
|
-
| (method_name: method_name) -> MethodEntry
|
|
98
|
-
| (const_name: RBS::TypeName) -> ConstantEntry
|
|
99
|
-
| (global_name: Symbol) -> GlobalEntry
|
|
100
|
-
|
|
101
|
-
def each_entry: () { (TypeEntry | MethodEntry | ConstantEntry | GlobalEntry) -> void } -> void
|
|
102
|
-
| () -> Enumerator[TypeEntry | MethodEntry | ConstantEntry | GlobalEntry, void]
|
|
103
|
-
|
|
104
|
-
def add_type_declaration: (RBS::TypeName type_name, TypeEntry::decl declaration) -> TypeEntry
|
|
105
|
-
|
|
106
|
-
def add_method_declaration: (method_name, MethodEntry::decl member) -> MethodEntry
|
|
107
|
-
|
|
108
|
-
def add_constant_declaration: (RBS::TypeName const_name, ConstantEntry::decl decl) -> ConstantEntry
|
|
109
|
-
|
|
110
|
-
def add_global_declaration: (Symbol global_name, GlobalEntry::decl decl) -> GlobalEntry
|
|
111
|
-
|
|
112
|
-
def each_declaration: (type_name: RBS::TypeName) { (TypeEntry) -> void } -> void
|
|
113
|
-
| (type_name: RBS::TypeName) -> Enumerator[TypeEntry, void]
|
|
114
|
-
| (method_name: method_name) { (MethodEntry) -> void } -> void
|
|
115
|
-
| (method_name: method_name) -> Enumerator[MethodEntry, void]
|
|
116
|
-
| (const_name: RBS::TypeName) { (ConstantEntry) -> void } -> void
|
|
117
|
-
| (const_name: RBS::TypeName) -> Enumerator[ConstantEntry, void]
|
|
118
|
-
| (global_name: Symbol) { (GlobalEntry) -> void } -> void
|
|
119
|
-
| (global_name: Symbol) -> Enumerator[GlobalEntry, void]
|
|
120
|
-
|
|
121
|
-
# `type_name` is referred from `ref`
|
|
122
|
-
#
|
|
123
|
-
def add_type_reference: (RBS::TypeName type_name, TypeEntry::ref ref) -> TypeEntry
|
|
124
|
-
|
|
125
|
-
def each_reference: (type_name: RBS::TypeName) { (TypeEntry::ref) -> void } -> void
|
|
126
|
-
| (type_name: RBS::TypeName) -> Enumerator[TypeEntry::ref, void]
|
|
127
|
-
|
|
128
|
-
class Builder
|
|
129
|
-
attr_reader index: RBSIndex
|
|
130
|
-
|
|
131
|
-
def initialize: (index: RBSIndex) -> void
|
|
132
|
-
|
|
133
|
-
def member: (RBS::TypeName type_name, RBS::AST::Members::t | RBS::AST::Declarations::t member) -> void
|
|
134
|
-
|
|
135
|
-
def type_reference: (RBS::Types::t, from: TypeEntry::ref) -> void
|
|
136
|
-
|
|
137
|
-
def env: (RBS::Environment env) -> void
|
|
138
|
-
end
|
|
139
|
-
end
|
|
140
|
-
end
|
|
141
|
-
end
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
use LanguageServer::Protocol::Constant::SymbolKind
|
|
2
|
-
|
|
3
|
-
module Steep
|
|
4
|
-
module Index
|
|
5
|
-
class SignatureSymbolProvider
|
|
6
|
-
module LSP = LanguageServer::Protocol
|
|
7
|
-
|
|
8
|
-
class SymbolInformation
|
|
9
|
-
attr_reader name: String
|
|
10
|
-
|
|
11
|
-
attr_reader location: RBS::Location[untyped, untyped]
|
|
12
|
-
|
|
13
|
-
attr_reader container_name: String?
|
|
14
|
-
|
|
15
|
-
attr_reader kind: SymbolKind::t
|
|
16
|
-
|
|
17
|
-
def initialize: (name: String, location: RBS::Location[untyped, untyped], container_name: String?, kind: SymbolKind::t) -> void
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
attr_reader project: Project
|
|
21
|
-
|
|
22
|
-
attr_reader indexes: Array[RBSIndex]
|
|
23
|
-
|
|
24
|
-
attr_reader assignment: Services::PathAssignment
|
|
25
|
-
|
|
26
|
-
def initialize: (project: Project, assignment: Services::PathAssignment) -> void
|
|
27
|
-
|
|
28
|
-
def self.test_type_name: (String query, RBS::TypeName type_name) -> bool
|
|
29
|
-
|
|
30
|
-
alias self.test_const_name self.test_type_name
|
|
31
|
-
|
|
32
|
-
def self.test_global_name: (String query, Symbol global_name) -> bool
|
|
33
|
-
|
|
34
|
-
def self.test_method_name: (String query, method_name) -> bool
|
|
35
|
-
|
|
36
|
-
def assigned?: (Pathname) -> bool
|
|
37
|
-
|
|
38
|
-
def query_symbol: (String query) -> Array[SymbolInformation]
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module Index
|
|
3
|
-
class SourceIndex
|
|
4
|
-
class ConstantEntry
|
|
5
|
-
attr_reader name: untyped
|
|
6
|
-
|
|
7
|
-
attr_reader definitions: untyped
|
|
8
|
-
|
|
9
|
-
attr_reader references: untyped
|
|
10
|
-
|
|
11
|
-
def initialize: (name: untyped) -> void
|
|
12
|
-
|
|
13
|
-
def add_definition: (untyped node) -> untyped
|
|
14
|
-
|
|
15
|
-
def add_reference: (untyped node) -> untyped
|
|
16
|
-
|
|
17
|
-
def merge!: (untyped other) -> untyped
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
class MethodEntry
|
|
21
|
-
attr_reader name: untyped
|
|
22
|
-
|
|
23
|
-
attr_reader definitions: untyped
|
|
24
|
-
|
|
25
|
-
attr_reader references: untyped
|
|
26
|
-
|
|
27
|
-
def initialize: (name: untyped) -> void
|
|
28
|
-
|
|
29
|
-
def add_definition: (untyped node) -> untyped
|
|
30
|
-
|
|
31
|
-
def add_reference: (untyped node) -> untyped
|
|
32
|
-
|
|
33
|
-
def merge!: (untyped other) -> untyped
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
attr_reader source: untyped
|
|
37
|
-
|
|
38
|
-
attr_reader constant_index: untyped
|
|
39
|
-
|
|
40
|
-
attr_reader method_index: untyped
|
|
41
|
-
|
|
42
|
-
attr_reader parent: untyped
|
|
43
|
-
|
|
44
|
-
attr_reader count: untyped
|
|
45
|
-
|
|
46
|
-
attr_reader parent_count: untyped
|
|
47
|
-
|
|
48
|
-
def initialize: (source: untyped, ?parent: untyped?) -> void
|
|
49
|
-
|
|
50
|
-
def new_child: () -> untyped
|
|
51
|
-
|
|
52
|
-
def merge!: (untyped child) -> untyped
|
|
53
|
-
|
|
54
|
-
def add_definition: (definition: untyped, ?constant: untyped?, ?method: untyped?) -> untyped
|
|
55
|
-
|
|
56
|
-
def add_reference: (ref: untyped, ?constant: untyped?, ?method: untyped?) -> untyped
|
|
57
|
-
|
|
58
|
-
def entry: (?constant: untyped?, ?method: untyped?) -> untyped
|
|
59
|
-
|
|
60
|
-
def reference: (?constant_node: untyped?) -> untyped
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
end
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module Interface
|
|
3
|
-
class Block
|
|
4
|
-
attr_reader type: Function
|
|
5
|
-
|
|
6
|
-
attr_reader self_type: AST::Types::t?
|
|
7
|
-
|
|
8
|
-
attr_reader optional: bool
|
|
9
|
-
|
|
10
|
-
def initialize: (type: Function, self_type: AST::Types::t?, optional: bool) -> void
|
|
11
|
-
|
|
12
|
-
def optional?: () -> bool
|
|
13
|
-
|
|
14
|
-
def required?: () -> bool
|
|
15
|
-
|
|
16
|
-
def to_optional: () -> Block
|
|
17
|
-
|
|
18
|
-
def ==: (untyped other) -> bool
|
|
19
|
-
|
|
20
|
-
alias eql? ==
|
|
21
|
-
|
|
22
|
-
def hash: () -> Integer
|
|
23
|
-
|
|
24
|
-
def closed?: () -> bool
|
|
25
|
-
|
|
26
|
-
def subst: (Substitution s) -> Block
|
|
27
|
-
|
|
28
|
-
@fvs: Set[AST::Types::variable]
|
|
29
|
-
|
|
30
|
-
def free_variables: () -> Set[AST::Types::variable]
|
|
31
|
-
|
|
32
|
-
def to_s: () -> ::String
|
|
33
|
-
|
|
34
|
-
def map_type: () { (AST::Types::t) -> AST::Types::t } -> Block
|
|
35
|
-
|
|
36
|
-
def +: (Block other) -> Block
|
|
37
|
-
|
|
38
|
-
def to_proc_type: () -> AST::Types::t
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
use RBS::TypeName
|
|
2
|
-
|
|
3
|
-
module Steep
|
|
4
|
-
module Interface
|
|
5
|
-
class Builder
|
|
6
|
-
class Config
|
|
7
|
-
# Type of `self` type included immediately in the type expression
|
|
8
|
-
#
|
|
9
|
-
attr_reader self_type: AST::Types::t?
|
|
10
|
-
|
|
11
|
-
# Type of `class` type included immediately in the type expression
|
|
12
|
-
#
|
|
13
|
-
attr_reader class_type: AST::Types::t?
|
|
14
|
-
|
|
15
|
-
# Type of `instance` type included immediately in the type expression
|
|
16
|
-
#
|
|
17
|
-
attr_reader instance_type: AST::Types::t?
|
|
18
|
-
|
|
19
|
-
# Upper bounds of type variables
|
|
20
|
-
attr_reader variable_bounds: Hash[Symbol, AST::Types::t?]
|
|
21
|
-
|
|
22
|
-
def initialize: (self_type: AST::Types::t?, variable_bounds: Hash[Symbol, AST::Types::t?]) -> void
|
|
23
|
-
| (self_type: AST::Types::t?, class_type: AST::Types::t, instance_type: AST::Types::t, variable_bounds: Hash[Symbol, AST::Types::t?]) -> void
|
|
24
|
-
|
|
25
|
-
def subst: () -> Substitution?
|
|
26
|
-
|
|
27
|
-
def self.empty: () -> Config
|
|
28
|
-
|
|
29
|
-
def upper_bound: (Symbol) -> AST::Types::t?
|
|
30
|
-
|
|
31
|
-
private
|
|
32
|
-
|
|
33
|
-
def validate: () -> self
|
|
34
|
-
|
|
35
|
-
def validate_fvs: (Symbol name, AST::Types::t?) -> void
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
attr_reader factory: AST::Types::Factory
|
|
39
|
-
|
|
40
|
-
# # No type application (if generic), no self-instance-module resolution
|
|
41
|
-
attr_reader object_shape_cache: Hash[TypeName, Shape?]
|
|
42
|
-
|
|
43
|
-
attr_reader union_shape_cache: Hash[AST::Types::Union, Shape?]
|
|
44
|
-
|
|
45
|
-
attr_reader singleton_shape_cache: Hash[TypeName, Shape?]
|
|
46
|
-
|
|
47
|
-
def initialize: (AST::Types::Factory) -> void
|
|
48
|
-
|
|
49
|
-
def fetch_cache: [KEY] (Hash[KEY, Shape?], KEY) { () -> Shape? } -> Shape?
|
|
50
|
-
|
|
51
|
-
# Returns a shape of given type with respect to Config
|
|
52
|
-
#
|
|
53
|
-
# * If `self` occurs in the given type, it returns types with `self`
|
|
54
|
-
# * If `self` doesn't occur in the given type, it returns type withohut `self`, that is resolved to `config.self_type`
|
|
55
|
-
#
|
|
56
|
-
def shape: (AST::Types::t, Config) -> Shape?
|
|
57
|
-
|
|
58
|
-
# Returns a shape of given type with respect to Config
|
|
59
|
-
#
|
|
60
|
-
# The `self` types included in the returned Shape is the `self` type in the top level
|
|
61
|
-
#
|
|
62
|
-
# * `raw_shape(<self>)` -> may return a shape with `self`
|
|
63
|
-
# * `raw_shape(<Array[self]>) -> returns a shape that returns `self` from `#first` method
|
|
64
|
-
#
|
|
65
|
-
def raw_shape: (AST::Types::t, Config) -> Shape?
|
|
66
|
-
|
|
67
|
-
def self_shape: (AST::Types::t, Config) -> Shape?
|
|
68
|
-
|
|
69
|
-
private
|
|
70
|
-
|
|
71
|
-
def object_shape: (RBS::TypeName) -> Shape
|
|
72
|
-
|
|
73
|
-
def singleton_shape: (RBS::TypeName) -> Shape
|
|
74
|
-
|
|
75
|
-
def union_shape: (AST::Types::t, Array[Shape]) -> Shape?
|
|
76
|
-
|
|
77
|
-
def intersection_shape: (AST::Types::t, Array[Shape]) -> Shape?
|
|
78
|
-
|
|
79
|
-
def proc_shape: (AST::Types::Proc, Shape) -> Shape
|
|
80
|
-
|
|
81
|
-
def tuple_shape: (AST::Types::Tuple) { (AST::Types::Name::Instance) -> Shape? } -> Shape?
|
|
82
|
-
|
|
83
|
-
def record_shape: (AST::Types::Record) { (AST::Types::Name::Instance) -> Shape? } -> Shape?
|
|
84
|
-
|
|
85
|
-
# Substitution for `self`/`instance`/`class` types, built from the name of given type
|
|
86
|
-
#
|
|
87
|
-
def class_subst: (AST::Types::Name::Instance | AST::Types::Name::Singleton) -> Substitution
|
|
88
|
-
|
|
89
|
-
def interface_subst: (AST::Types::Name::Interface) -> Substitution
|
|
90
|
-
|
|
91
|
-
# Substitution for type application of class instance, type alias, or interface types
|
|
92
|
-
def app_subst: (AST::Types::Name::Instance | AST::Types::Name::Alias | AST::Types::Name::Interface) -> Substitution
|
|
93
|
-
|
|
94
|
-
def method_name_for: (RBS::Definition::Method::TypeDef, Symbol name) -> method_name
|
|
95
|
-
|
|
96
|
-
def replace_primitive_method: (method_name, RBS::Definition::Method::TypeDef, MethodType) -> MethodType
|
|
97
|
-
|
|
98
|
-
# # Calculates the shape of given class, based on `public_only` and Config
|
|
99
|
-
# #
|
|
100
|
-
# # Returns `nil` if a type that cannot calculate Shape is given.
|
|
101
|
-
# #
|
|
102
|
-
# # * `public_only`: If false, returns a shape with private methods.
|
|
103
|
-
# #
|
|
104
|
-
# def shape: (AST::Types::t, public_only: bool, config: Config) -> Shape?
|
|
105
|
-
|
|
106
|
-
# private
|
|
107
|
-
|
|
108
|
-
@subtyping: Subtyping::Check?
|
|
109
|
-
|
|
110
|
-
def subtyping: () -> Subtyping::Check
|
|
111
|
-
|
|
112
|
-
# # Fetch and update cache
|
|
113
|
-
# #
|
|
114
|
-
# # Cache if given type is cacheable:
|
|
115
|
-
# #
|
|
116
|
-
# # * `self`, `instance`, `class` is not cacheable
|
|
117
|
-
# # * Type variables are not cacheable
|
|
118
|
-
# #
|
|
119
|
-
# def fetch_cache: (AST::Types::t, bool public_only, Config) { () -> Shape? } -> Shape?
|
|
120
|
-
|
|
121
|
-
# def include_self?: (AST::Types::t) -> bool
|
|
122
|
-
|
|
123
|
-
# def definition_builder: () -> RBS::DefinitionBuilder
|
|
124
|
-
|
|
125
|
-
# def object_shape: (
|
|
126
|
-
# AST::Types::Name::Instance | AST::Types::Name::Singleton | AST::Types::Name::Interface,
|
|
127
|
-
# bool public_only,
|
|
128
|
-
# boolish keep_self,
|
|
129
|
-
# boolish keep_instance,
|
|
130
|
-
# boolish keep_singleton
|
|
131
|
-
# ) -> Shape
|
|
132
|
-
|
|
133
|
-
# def raw_object_shape: (
|
|
134
|
-
# AST::Types::Name::Instance | AST::Types::Name::Singleton | AST::Types::Name::Interface,
|
|
135
|
-
# bool public_only,
|
|
136
|
-
# Substitution subst
|
|
137
|
-
# ) -> Shape
|
|
138
|
-
|
|
139
|
-
# def union_shape: (AST::Types::t, Array[Shape], bool public_only) -> Shape
|
|
140
|
-
|
|
141
|
-
# def intersection_shape: (AST::Types::t, Array[Shape], bool public_only) -> Shape
|
|
142
|
-
|
|
143
|
-
# def tuple_shape: (AST::Types::Tuple, bool public_only, Config) -> Shape
|
|
144
|
-
|
|
145
|
-
# def record_shape: (AST::Types::Record, bool public_only, Config) -> Shape?
|
|
146
|
-
|
|
147
|
-
# def proc_shape: (AST::Types::Proc, bool public_only, Config) -> Shape?
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
end
|
|
151
|
-
end
|
|
152
|
-
end
|