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
|
@@ -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
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module AST
|
|
3
|
-
module Types
|
|
4
|
-
module Logic
|
|
5
|
-
class Base
|
|
6
|
-
attr_reader location: untyped
|
|
7
|
-
|
|
8
|
-
def subst: (Interface::Substitution s) -> self
|
|
9
|
-
|
|
10
|
-
include Helper::NoFreeVariables
|
|
11
|
-
|
|
12
|
-
include Helper::NoChild
|
|
13
|
-
|
|
14
|
-
def hash: () -> Integer
|
|
15
|
-
|
|
16
|
-
def ==: (untyped other) -> bool
|
|
17
|
-
|
|
18
|
-
alias eql? ==
|
|
19
|
-
|
|
20
|
-
def to_s: () -> String
|
|
21
|
-
|
|
22
|
-
def level: () -> Array[Integer]
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
# A type for `!` (not) operator results.
|
|
26
|
-
class Not < Base
|
|
27
|
-
def initialize: (?location: untyped?) -> void
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# A type for `foo.nil?` call results.
|
|
31
|
-
class ReceiverIsNil < Base
|
|
32
|
-
def initialize: (?location: untyped?) -> void
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
#
|
|
36
|
-
class ReceiverIsNotNil < Base
|
|
37
|
-
def initialize: (?location: untyped?) -> void
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# A type for `receiver.is_a?(C)` call results.
|
|
41
|
-
class ReceiverIsArg < Base
|
|
42
|
-
def initialize: (?location: untyped?) -> void
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
# A type for `Class#===` call results.
|
|
46
|
-
class ArgIsReceiver < Base
|
|
47
|
-
def initialize: (?location: untyped?) -> void
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
# A type for `Object#===` call results.
|
|
51
|
-
class ArgEqualsReceiver < Base
|
|
52
|
-
def initialize: (?location: untyped?) -> void
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
# A type for `Class#<` or `Class#<=` call results.
|
|
56
|
-
class ArgIsAncestor < Base
|
|
57
|
-
def initialize: (?location: untyped?) -> void
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
# A type with truthy/falsy type environment.
|
|
61
|
-
class Env < Base
|
|
62
|
-
attr_reader truthy: TypeInference::TypeEnv
|
|
63
|
-
|
|
64
|
-
attr_reader falsy: TypeInference::TypeEnv
|
|
65
|
-
|
|
66
|
-
attr_reader type: t
|
|
67
|
-
|
|
68
|
-
def initialize: (truthy: TypeInference::TypeEnv, falsy: TypeInference::TypeEnv, type: t, ?location: untyped) -> void
|
|
69
|
-
|
|
70
|
-
def ==: (untyped other) -> bool
|
|
71
|
-
|
|
72
|
-
alias eql? ==
|
|
73
|
-
|
|
74
|
-
def hash: () -> Integer
|
|
75
|
-
|
|
76
|
-
def inspect: () -> String
|
|
77
|
-
|
|
78
|
-
alias to_s inspect
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
end
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module AST
|
|
3
|
-
module Types
|
|
4
|
-
# Types with names
|
|
5
|
-
#
|
|
6
|
-
module Name
|
|
7
|
-
class Base
|
|
8
|
-
attr_reader location: untyped
|
|
9
|
-
|
|
10
|
-
attr_reader name: RBS::TypeName
|
|
11
|
-
|
|
12
|
-
def initialize: (name: RBS::TypeName, ?location: untyped?) -> void
|
|
13
|
-
|
|
14
|
-
include Helper::NoFreeVariables
|
|
15
|
-
|
|
16
|
-
def subst: (Steep::Interface::Substitution s) -> self
|
|
17
|
-
|
|
18
|
-
def level: () -> Array[Integer]
|
|
19
|
-
|
|
20
|
-
def map_type: () { (t) -> t } -> self
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
class Applying < Base
|
|
24
|
-
attr_reader args: Array[t]
|
|
25
|
-
|
|
26
|
-
def initialize: (name: RBS::TypeName, args: Array[t], ?location: untyped?) -> void
|
|
27
|
-
|
|
28
|
-
def ==: (untyped other) -> bool
|
|
29
|
-
|
|
30
|
-
alias eql? ==
|
|
31
|
-
|
|
32
|
-
@hash: Integer
|
|
33
|
-
def hash: () -> Integer
|
|
34
|
-
|
|
35
|
-
def to_s: () -> ::String
|
|
36
|
-
|
|
37
|
-
def with_location: (untyped new_location) -> self
|
|
38
|
-
|
|
39
|
-
def subst: (Steep::Interface::Substitution s) -> self
|
|
40
|
-
|
|
41
|
-
@fvs: Set[variable]
|
|
42
|
-
def free_variables: () -> Set[variable]
|
|
43
|
-
|
|
44
|
-
def each_child: () { (t) -> void } -> void
|
|
45
|
-
| () -> Enumerator[t, void]
|
|
46
|
-
|
|
47
|
-
include Helper::ChildrenLevel
|
|
48
|
-
|
|
49
|
-
def level: () -> Array[Integer]
|
|
50
|
-
|
|
51
|
-
def map_type: () { (t) -> t } -> self
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
# Singleton of a class/module
|
|
55
|
-
class Singleton < Base
|
|
56
|
-
def ==: (untyped other) -> bool
|
|
57
|
-
|
|
58
|
-
alias eql? ==
|
|
59
|
-
|
|
60
|
-
def hash: () -> Integer
|
|
61
|
-
|
|
62
|
-
def to_s: () -> ::String
|
|
63
|
-
|
|
64
|
-
def with_location: (untyped new_location) -> Singleton
|
|
65
|
-
|
|
66
|
-
include Helper::NoChild
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
# An instance of a class/module
|
|
70
|
-
class Instance < Applying
|
|
71
|
-
def to_module: () -> Singleton
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
# An interface type
|
|
75
|
-
class Interface < Applying
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
# Type alias
|
|
79
|
-
class Alias < Applying
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
end
|
data/sig/steep/ast/types/nil.rbs
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module AST
|
|
3
|
-
module Types
|
|
4
|
-
class Nil
|
|
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) -> Nil
|
|
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) -> Nil
|
|
26
|
-
|
|
27
|
-
def back_type: () -> Name::Instance
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module AST
|
|
3
|
-
module Types
|
|
4
|
-
class Proc
|
|
5
|
-
attr_reader location: untyped
|
|
6
|
-
|
|
7
|
-
attr_reader type: Interface::Function
|
|
8
|
-
|
|
9
|
-
attr_reader self_type: AST::Types::t?
|
|
10
|
-
|
|
11
|
-
attr_reader block: Interface::Block?
|
|
12
|
-
|
|
13
|
-
def initialize: (type: Interface::Function, self_type: AST::Types::t?, block: Interface::Block?, ?location: untyped) -> void
|
|
14
|
-
|
|
15
|
-
def ==: (untyped other) -> bool
|
|
16
|
-
|
|
17
|
-
def hash: () -> Integer
|
|
18
|
-
|
|
19
|
-
alias eql? ==
|
|
20
|
-
|
|
21
|
-
def subst: (Interface::Substitution s) -> Proc
|
|
22
|
-
|
|
23
|
-
def to_s: () -> ::String
|
|
24
|
-
|
|
25
|
-
@fvs: Set[variable]
|
|
26
|
-
def free_variables: () -> Set[variable]
|
|
27
|
-
|
|
28
|
-
include Helper::ChildrenLevel
|
|
29
|
-
|
|
30
|
-
def level: () -> Array[Integer]
|
|
31
|
-
|
|
32
|
-
def with_location: (untyped new_location) -> Proc
|
|
33
|
-
|
|
34
|
-
def map_type: () { (AST::Types::t) -> AST::Types::t } -> Proc
|
|
35
|
-
|
|
36
|
-
# Returns true if the proc requires exactly one argument
|
|
37
|
-
#
|
|
38
|
-
# * One required argument,
|
|
39
|
-
# * No optional/rest argument, and
|
|
40
|
-
# * No keywords
|
|
41
|
-
#
|
|
42
|
-
def one_arg?: () -> bool
|
|
43
|
-
|
|
44
|
-
def back_type: () -> AST::Types::t
|
|
45
|
-
|
|
46
|
-
def block_required?: () -> bool
|
|
47
|
-
|
|
48
|
-
def each_child: () { (AST::Types::t) -> void } -> void
|
|
49
|
-
| () -> Enumerator[AST::Types::t, void]
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module AST
|
|
3
|
-
module Types
|
|
4
|
-
class Record
|
|
5
|
-
type key = Symbol | String | Integer
|
|
6
|
-
|
|
7
|
-
attr_reader location: untyped
|
|
8
|
-
|
|
9
|
-
attr_reader elements: Hash[key, t]
|
|
10
|
-
|
|
11
|
-
def initialize: (elements: Hash[key, t], ?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) -> Record
|
|
20
|
-
|
|
21
|
-
def to_s: () -> String
|
|
22
|
-
|
|
23
|
-
@fvs: Set[variable]
|
|
24
|
-
def free_variables: () -> Set[variable]
|
|
25
|
-
|
|
26
|
-
include Helper::ChildrenLevel
|
|
27
|
-
|
|
28
|
-
def each_child: () { (t) -> void } -> void
|
|
29
|
-
| () -> Enumerator[t, void]
|
|
30
|
-
|
|
31
|
-
def map_type: () { (t) -> t } -> Record
|
|
32
|
-
|
|
33
|
-
def level: () -> Array[Integer]
|
|
34
|
-
|
|
35
|
-
def with_location: (untyped new_location) -> Record
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module AST
|
|
3
|
-
module Types
|
|
4
|
-
class Self
|
|
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 to_s: () -> String
|
|
16
|
-
|
|
17
|
-
include Helper::NoChild
|
|
18
|
-
|
|
19
|
-
def subst: (Interface::Substitution s) -> t
|
|
20
|
-
|
|
21
|
-
@@fvs: Set[variable]
|
|
22
|
-
def free_variables: () -> Set[variable]
|
|
23
|
-
|
|
24
|
-
def level: () -> Array[Integer]
|
|
25
|
-
|
|
26
|
-
def with_location: (untyped new_location) -> Self
|
|
27
|
-
|
|
28
|
-
self.@instance: Self
|
|
29
|
-
def self.instance: () -> Self
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
data/sig/steep/ast/types/top.rbs
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module AST
|
|
3
|
-
module Types
|
|
4
|
-
class Top
|
|
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) -> Top
|
|
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) -> Top
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module AST
|
|
3
|
-
module Types
|
|
4
|
-
class Tuple
|
|
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 ==: (untyped other) -> bool
|
|
12
|
-
|
|
13
|
-
def hash: () -> Integer
|
|
14
|
-
|
|
15
|
-
alias eql? ==
|
|
16
|
-
|
|
17
|
-
def subst: (Interface::Substitution s) -> Tuple
|
|
18
|
-
|
|
19
|
-
def to_s: () -> ::String
|
|
20
|
-
|
|
21
|
-
@fvs: Set[variable]
|
|
22
|
-
def free_variables: () -> Set[variable]
|
|
23
|
-
|
|
24
|
-
include Helper::ChildrenLevel
|
|
25
|
-
|
|
26
|
-
def each_child: () { (t) -> void } -> void
|
|
27
|
-
| () -> Enumerator[t, void]
|
|
28
|
-
|
|
29
|
-
def map_type: () { (t) -> t } -> Tuple
|
|
30
|
-
|
|
31
|
-
def level: () -> Array[Integer]
|
|
32
|
-
|
|
33
|
-
def with_location: (untyped new_location) -> Tuple
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module AST
|
|
3
|
-
module Types
|
|
4
|
-
class Union
|
|
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
|
-
def each_child: () { (t) -> void } -> void
|
|
28
|
-
| () -> Enumerator[t, void]
|
|
29
|
-
|
|
30
|
-
def map_type: () { (t) -> t } -> t
|
|
31
|
-
|
|
32
|
-
include Helper::ChildrenLevel
|
|
33
|
-
|
|
34
|
-
def level: () -> Array[Integer]
|
|
35
|
-
|
|
36
|
-
def with_location: (untyped new_location) -> Union
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
data/sig/steep/ast/types/var.rbs
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module AST
|
|
3
|
-
module Types
|
|
4
|
-
# Type variables
|
|
5
|
-
class Var
|
|
6
|
-
attr_reader name: Symbol
|
|
7
|
-
|
|
8
|
-
attr_reader location: untyped
|
|
9
|
-
|
|
10
|
-
def initialize: (name: Symbol, ?location: untyped?) -> void
|
|
11
|
-
|
|
12
|
-
def ==: (untyped other) -> bool
|
|
13
|
-
|
|
14
|
-
def hash: () -> Integer
|
|
15
|
-
|
|
16
|
-
alias eql? ==
|
|
17
|
-
|
|
18
|
-
self.@mutex: Thread::Mutex
|
|
19
|
-
self.@max: Integer
|
|
20
|
-
|
|
21
|
-
def self.fresh_name: (Symbol name) -> Symbol
|
|
22
|
-
|
|
23
|
-
def self.fresh: (Symbol name, ?location: untyped?) -> Var
|
|
24
|
-
|
|
25
|
-
def to_s: () -> String
|
|
26
|
-
|
|
27
|
-
def subst: (Interface::Substitution s) -> t
|
|
28
|
-
|
|
29
|
-
@fvs: Set[variable]
|
|
30
|
-
def free_variables: () -> Set[variable]
|
|
31
|
-
|
|
32
|
-
include Helper::NoChild
|
|
33
|
-
|
|
34
|
-
def level: () -> Array[Integer]
|
|
35
|
-
|
|
36
|
-
def update: (?name: Symbol, ?location: untyped) -> Var
|
|
37
|
-
|
|
38
|
-
def with_location: (untyped new_location) -> Var
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module AST
|
|
3
|
-
module Types
|
|
4
|
-
class Void
|
|
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) -> Void
|
|
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) -> Void
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
data/sig/steep/ast/types.rbs
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module AST
|
|
3
|
-
module Types
|
|
4
|
-
type t = Any | Boolean | Bot | Nil | Top | Void | Literal
|
|
5
|
-
| Class | Instance | Self
|
|
6
|
-
| Intersection | Record | Tuple | Union
|
|
7
|
-
| Name::Alias | Name::Instance | Name::Interface | Name::Singleton
|
|
8
|
-
| Proc | Var
|
|
9
|
-
| Logic::Not | Logic::ReceiverIsNil | Logic::ReceiverIsNotNil | Logic::ReceiverIsArg | Logic::ArgIsReceiver | Logic::ArgEqualsReceiver | Logic::ArgIsAncestor | Logic::Env
|
|
10
|
-
|
|
11
|
-
# Variables and special types that is subject for substitution
|
|
12
|
-
#
|
|
13
|
-
type variable = Symbol | Class | Instance | Self
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|