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/shims/yaml.rbs
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
class AnnotationParser
|
|
3
|
-
VAR_NAME: Regexp
|
|
4
|
-
|
|
5
|
-
METHOD_NAME: Regexp
|
|
6
|
-
|
|
7
|
-
CONST_NAME: Regexp
|
|
8
|
-
|
|
9
|
-
DYNAMIC_NAME: Regexp
|
|
10
|
-
|
|
11
|
-
IVAR_NAME: Regexp
|
|
12
|
-
|
|
13
|
-
attr_reader factory: AST::Types::Factory
|
|
14
|
-
|
|
15
|
-
def initialize: (factory: AST::Types::Factory) -> void
|
|
16
|
-
|
|
17
|
-
class SyntaxError < StandardError
|
|
18
|
-
attr_reader source: String
|
|
19
|
-
|
|
20
|
-
attr_reader location: RBS::Location[untyped, untyped]
|
|
21
|
-
|
|
22
|
-
def initialize: (source: String, location: RBS::Location[untyped, untyped], exn: Exception) -> void
|
|
23
|
-
| (source: String, location: RBS::Location[untyped, untyped], message: String) -> void
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
TYPE: Regexp
|
|
27
|
-
|
|
28
|
-
COLON: Regexp
|
|
29
|
-
|
|
30
|
-
PARAM: Regexp
|
|
31
|
-
|
|
32
|
-
TYPE_PARAMS: Regexp
|
|
33
|
-
|
|
34
|
-
def parse_type: (MatchData, ?Symbol, location: RBS::Location[untyped, untyped]) -> AST::Types::t
|
|
35
|
-
|
|
36
|
-
# ```
|
|
37
|
-
# @type ${keyword} ${name}: ${type}
|
|
38
|
-
# ```
|
|
39
|
-
#
|
|
40
|
-
# Example:
|
|
41
|
-
#
|
|
42
|
-
# - `@type const Foo::Bar: String`
|
|
43
|
-
# - `@type var xyzzy: Array[String]`
|
|
44
|
-
#
|
|
45
|
-
def keyword_subject_type: (String keyword, Regexp name) -> Regexp
|
|
46
|
-
|
|
47
|
-
# ```
|
|
48
|
-
# @type ${keyword}: ${type}
|
|
49
|
-
# ```
|
|
50
|
-
#
|
|
51
|
-
# Example:
|
|
52
|
-
#
|
|
53
|
-
# - `@type break: String`
|
|
54
|
-
# - `@type self: Foo`
|
|
55
|
-
#
|
|
56
|
-
def keyword_and_type: (String keyword) -> ::Regexp
|
|
57
|
-
|
|
58
|
-
def parse: (String src, location: RBS::Location[untyped, untyped]) -> AST::Annotation::t?
|
|
59
|
-
end
|
|
60
|
-
end
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module AST
|
|
3
|
-
module Annotation
|
|
4
|
-
class Collection
|
|
5
|
-
attr_reader annotations: Array[Annotation::t]
|
|
6
|
-
|
|
7
|
-
attr_reader factory: Types::Factory
|
|
8
|
-
|
|
9
|
-
attr_reader context: RBS::Resolver::context
|
|
10
|
-
|
|
11
|
-
attr_reader var_type_annotations: Hash[Symbol, VarType]
|
|
12
|
-
|
|
13
|
-
attr_reader const_type_annotations: Hash[RBS::TypeName, ConstType]
|
|
14
|
-
|
|
15
|
-
attr_reader ivar_type_annotations: Hash[Symbol, IvarType]
|
|
16
|
-
|
|
17
|
-
attr_reader method_type_annotations: Hash[Symbol, MethodType?]
|
|
18
|
-
|
|
19
|
-
attr_reader block_type_annotation: BlockType?
|
|
20
|
-
|
|
21
|
-
attr_reader return_type_annotation: ReturnType?
|
|
22
|
-
|
|
23
|
-
attr_reader self_type_annotation: SelfType?
|
|
24
|
-
|
|
25
|
-
attr_reader instance_type_annotation: InstanceType?
|
|
26
|
-
|
|
27
|
-
attr_reader module_type_annotation: ModuleType?
|
|
28
|
-
|
|
29
|
-
attr_reader implement_module_annotation: Implements?
|
|
30
|
-
|
|
31
|
-
attr_reader dynamic_annotations: Array[Dynamic]
|
|
32
|
-
|
|
33
|
-
attr_reader break_type_annotation: BreakType?
|
|
34
|
-
|
|
35
|
-
def initialize: (annotations: Array[Annotation::t], factory: Types::Factory, context: RBS::Resolver::context) -> void
|
|
36
|
-
|
|
37
|
-
def absolute_type: (Types::t) -> Types::t
|
|
38
|
-
| (Types::t?) -> Types::t?
|
|
39
|
-
|
|
40
|
-
def var_type: (lvar: Symbol) -> Types::t?
|
|
41
|
-
| (ivar: Symbol) -> Types::t?
|
|
42
|
-
| (const: RBS::TypeName) -> Types::t?
|
|
43
|
-
|
|
44
|
-
def method_type: (Symbol name) -> Interface::MethodType?
|
|
45
|
-
|
|
46
|
-
%a{pure} def block_type: () -> Types::t?
|
|
47
|
-
|
|
48
|
-
%a{pure} def return_type: () -> Types::t?
|
|
49
|
-
|
|
50
|
-
%a{pure} def self_type: () -> Types::t?
|
|
51
|
-
|
|
52
|
-
%a{pure} def instance_type: () -> Types::t?
|
|
53
|
-
|
|
54
|
-
%a{pure} def module_type: () -> Types::t?
|
|
55
|
-
|
|
56
|
-
%a{pure} def break_type: () -> Types::t?
|
|
57
|
-
|
|
58
|
-
def lvar_types: () -> Hash[Symbol, Types::t]
|
|
59
|
-
|
|
60
|
-
def ivar_types: () -> Hash[Symbol, Types::t]
|
|
61
|
-
|
|
62
|
-
def const_types: () -> Hash[RBS::TypeName, Types::t]
|
|
63
|
-
|
|
64
|
-
def instance_dynamics: () -> Array[Symbol]
|
|
65
|
-
|
|
66
|
-
def module_dynamics: () -> Array[Symbol]
|
|
67
|
-
|
|
68
|
-
def merge_block_annotations: (Collection annotations) -> Collection
|
|
69
|
-
|
|
70
|
-
def any?: () { (Annotation::t) -> boolish } -> bool
|
|
71
|
-
|
|
72
|
-
def size: () -> Integer
|
|
73
|
-
|
|
74
|
-
def include?: (Annotation::t obj) -> bool
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
end
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module AST
|
|
3
|
-
module Annotation
|
|
4
|
-
type t = ReturnType | BlockType | SelfType | InstanceType | ModuleType | BreakType
|
|
5
|
-
| MethodType | VarType | ConstType | IvarType
|
|
6
|
-
| Implements | Dynamic
|
|
7
|
-
|
|
8
|
-
type loc = RBS::Location[untyped, untyped]
|
|
9
|
-
|
|
10
|
-
module Located
|
|
11
|
-
attr_reader location: loc?
|
|
12
|
-
|
|
13
|
-
%a{pure} def line: () -> Integer?
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
class Named[T, N]
|
|
17
|
-
attr_reader name: N
|
|
18
|
-
|
|
19
|
-
attr_reader type: T
|
|
20
|
-
|
|
21
|
-
include Located
|
|
22
|
-
|
|
23
|
-
def initialize: (name: N, type: T, ?location: loc?) -> void
|
|
24
|
-
|
|
25
|
-
def ==: (untyped other) -> bool
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
class Typed
|
|
29
|
-
attr_reader type: Types::t
|
|
30
|
-
|
|
31
|
-
def initialize: (type: Types::t, ?location: loc?) -> void
|
|
32
|
-
|
|
33
|
-
def ==: (untyped other) -> bool
|
|
34
|
-
|
|
35
|
-
include Located
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
class ReturnType < Typed
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
class BlockType < Typed
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
class SelfType < Typed
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
class InstanceType < Typed
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
class ModuleType < Typed
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
class BreakType < Typed
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
class MethodType < Named[Interface::MethodType, Symbol]
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
class VarType < Named[Types::t, Symbol]
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
class ConstType < Named[Types::t, RBS::TypeName]
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
class IvarType < Named[Types::t, Symbol]
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
class Implements
|
|
69
|
-
class Module
|
|
70
|
-
attr_reader name: RBS::TypeName
|
|
71
|
-
|
|
72
|
-
attr_reader args: Array[Symbol]
|
|
73
|
-
|
|
74
|
-
def initialize: (name: RBS::TypeName, args: Array[Symbol]) -> void
|
|
75
|
-
|
|
76
|
-
def ==: (untyped other) -> bool
|
|
77
|
-
|
|
78
|
-
alias eql? ==
|
|
79
|
-
|
|
80
|
-
def hash: () -> Integer
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
include Located
|
|
84
|
-
|
|
85
|
-
attr_reader name: Module
|
|
86
|
-
|
|
87
|
-
def initialize: (name: Module, ?location: loc?) -> void
|
|
88
|
-
|
|
89
|
-
def ==: (untyped other) -> bool
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
class Dynamic
|
|
93
|
-
class Name
|
|
94
|
-
type kind = :instance | :module_instance | :module
|
|
95
|
-
|
|
96
|
-
attr_reader kind: kind
|
|
97
|
-
|
|
98
|
-
attr_reader name: Symbol
|
|
99
|
-
|
|
100
|
-
attr_reader location: loc?
|
|
101
|
-
|
|
102
|
-
def initialize: (name: Symbol, kind: kind, ?location: loc?) -> void
|
|
103
|
-
|
|
104
|
-
def instance_method?: () -> bool
|
|
105
|
-
|
|
106
|
-
def module_method?: () -> bool
|
|
107
|
-
|
|
108
|
-
def ==: (untyped other) -> bool
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
include Located
|
|
112
|
-
|
|
113
|
-
attr_reader names: Array[Name]
|
|
114
|
-
|
|
115
|
-
def initialize: (names: Array[Name], ?location: loc?) -> void
|
|
116
|
-
|
|
117
|
-
def ==: (untyped other) -> bool
|
|
118
|
-
end
|
|
119
|
-
end
|
|
120
|
-
end
|
|
121
|
-
end
|
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
|