rbi 0.3.2 → 0.3.3
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/lib/rbi/model.rb +5 -3
- data/lib/rbi/parser.rb +18 -0
- data/lib/rbi/printer.rb +6 -2
- data/lib/rbi/rbs_printer.rb +4 -0
- data/lib/rbi/version.rb +1 -1
- data/rbi/rbi.rbi +16 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a5d95986e2041432d98662ec8d46d89eb8a1b8cafafd8bba4d78ac7218e4379e
|
4
|
+
data.tar.gz: bbc117ade8b85f2834e172f6d7c4fac54c71846634b176b52adf607a0c82d37a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc76dff9e19e46d13dd54d458b018cf0f41210f2ca00d7b6a053012740017fc4d47ac9b5f09ea66921b9e3634c415116f5ad4d3bc3c34d53bd4d208dc5cb9362
|
7
|
+
data.tar.gz: 37eafcb497a99293ebac8a2614863bcebdb294effa0a02e479f24b853a2b9886a16f927bfdb1f31d4c31d66527310ef716d21ee6e62f885db7c27a9133ed6c7d
|
data/lib/rbi/model.rb
CHANGED
@@ -853,7 +853,7 @@ module RBI
|
|
853
853
|
attr_accessor :return_type
|
854
854
|
|
855
855
|
#: bool
|
856
|
-
attr_accessor :is_abstract, :is_override, :is_overridable, :is_final, :allow_incompatible_override
|
856
|
+
attr_accessor :is_abstract, :is_override, :is_overridable, :is_final, :allow_incompatible_override, :without_runtime
|
857
857
|
|
858
858
|
#: Array[String]
|
859
859
|
attr_reader :type_params
|
@@ -861,7 +861,7 @@ module RBI
|
|
861
861
|
#: Symbol?
|
862
862
|
attr_accessor :checked
|
863
863
|
|
864
|
-
#: (?params: Array[SigParam], ?return_type: (Type | String), ?is_abstract: bool, ?is_override: bool, ?is_overridable: bool, ?is_final: bool, ?allow_incompatible_override: bool, ?type_params: Array[String], ?checked: Symbol?, ?loc: Loc?, ?comments: Array[Comment]) ?{ (Sig node) -> void } -> void
|
864
|
+
#: (?params: Array[SigParam], ?return_type: (Type | String), ?is_abstract: bool, ?is_override: bool, ?is_overridable: bool, ?is_final: bool, ?allow_incompatible_override: bool, ?without_runtime: bool, ?type_params: Array[String], ?checked: Symbol?, ?loc: Loc?, ?comments: Array[Comment]) ?{ (Sig node) -> void } -> void
|
865
865
|
def initialize(
|
866
866
|
params: [],
|
867
867
|
return_type: "void",
|
@@ -870,6 +870,7 @@ module RBI
|
|
870
870
|
is_overridable: false,
|
871
871
|
is_final: false,
|
872
872
|
allow_incompatible_override: false,
|
873
|
+
without_runtime: false,
|
873
874
|
type_params: [],
|
874
875
|
checked: nil,
|
875
876
|
loc: nil,
|
@@ -884,6 +885,7 @@ module RBI
|
|
884
885
|
@is_overridable = is_overridable
|
885
886
|
@is_final = is_final
|
886
887
|
@allow_incompatible_override = allow_incompatible_override
|
888
|
+
@without_runtime = without_runtime
|
887
889
|
@type_params = type_params
|
888
890
|
@checked = checked
|
889
891
|
block&.call(self)
|
@@ -905,7 +907,7 @@ module RBI
|
|
905
907
|
|
906
908
|
params == other.params && return_type.to_s == other.return_type.to_s && is_abstract == other.is_abstract &&
|
907
909
|
is_override == other.is_override && is_overridable == other.is_overridable && is_final == other.is_final &&
|
908
|
-
type_params == other.type_params && checked == other.checked
|
910
|
+
without_runtime == other.without_runtime && type_params == other.type_params && checked == other.checked
|
909
911
|
end
|
910
912
|
end
|
911
913
|
|
data/lib/rbi/parser.rb
CHANGED
@@ -149,6 +149,16 @@ module RBI
|
|
149
149
|
visitor.visit(node)
|
150
150
|
visitor.location
|
151
151
|
end
|
152
|
+
|
153
|
+
#: (Prism::Node? node) -> bool
|
154
|
+
def self?(node)
|
155
|
+
node.is_a?(Prism::SelfNode)
|
156
|
+
end
|
157
|
+
|
158
|
+
#: (Prism::Node? node) -> bool
|
159
|
+
def t_sig_without_runtime?(node)
|
160
|
+
!!(node.is_a?(Prism::ConstantPathNode) && node_string(node) =~ /(::)?T::Sig::WithoutRuntime/)
|
161
|
+
end
|
152
162
|
end
|
153
163
|
|
154
164
|
class TreeBuilder < Visitor
|
@@ -505,6 +515,10 @@ module RBI
|
|
505
515
|
comments: node_comments(node),
|
506
516
|
)
|
507
517
|
when "sig"
|
518
|
+
unless node.receiver.nil? || self?(node.receiver) || t_sig_without_runtime?(node.receiver)
|
519
|
+
@last_node = nil
|
520
|
+
return
|
521
|
+
end
|
508
522
|
@last_sigs << parse_sig(node)
|
509
523
|
else
|
510
524
|
current_scope << Send.new(
|
@@ -884,6 +898,8 @@ module RBI
|
|
884
898
|
def visit_call_node(node)
|
885
899
|
case node.message
|
886
900
|
when "sig"
|
901
|
+
@current.without_runtime = t_sig_without_runtime?(node.receiver)
|
902
|
+
|
887
903
|
args = node.arguments
|
888
904
|
if args.is_a?(Prism::ArgumentsNode)
|
889
905
|
args.arguments.each do |arg|
|
@@ -961,6 +977,7 @@ module RBI
|
|
961
977
|
@offset_last_newline = false #: bool
|
962
978
|
end
|
963
979
|
|
980
|
+
# @override
|
964
981
|
#: (Prism::StringNode node) -> void
|
965
982
|
def visit_string_node(node)
|
966
983
|
return unless node.heredoc?
|
@@ -971,6 +988,7 @@ module RBI
|
|
971
988
|
handle_string_node(node)
|
972
989
|
end
|
973
990
|
|
991
|
+
# @override
|
974
992
|
#: (Prism::InterpolatedStringNode node) -> void
|
975
993
|
def visit_interpolated_string_node(node)
|
976
994
|
return super unless node.heredoc?
|
data/lib/rbi/printer.rb
CHANGED
@@ -707,7 +707,9 @@ module RBI
|
|
707
707
|
|
708
708
|
#: (Sig node) -> void
|
709
709
|
def print_sig_as_line(node)
|
710
|
-
printt
|
710
|
+
printt
|
711
|
+
print("T::Sig::WithoutRuntime.") if node.without_runtime
|
712
|
+
print("sig")
|
711
713
|
print("(:final)") if node.is_final
|
712
714
|
print(" { ")
|
713
715
|
sig_modifiers(node).each do |modifier|
|
@@ -734,7 +736,9 @@ module RBI
|
|
734
736
|
def print_sig_as_block(node)
|
735
737
|
modifiers = sig_modifiers(node)
|
736
738
|
|
737
|
-
printt
|
739
|
+
printt
|
740
|
+
print("T::Sig::WithoutRuntime.") if node.without_runtime
|
741
|
+
print("sig")
|
738
742
|
print("(:final)") if node.is_final
|
739
743
|
printn(" do")
|
740
744
|
indent
|
data/lib/rbi/rbs_printer.rb
CHANGED
data/lib/rbi/version.rb
CHANGED
data/rbi/rbi.rbi
CHANGED
@@ -1013,10 +1013,10 @@ class RBI::Parser::HeredocLocationVisitor < ::Prism::Visitor
|
|
1013
1013
|
sig { returns(::Prism::Location) }
|
1014
1014
|
def location; end
|
1015
1015
|
|
1016
|
-
sig { params(node: ::Prism::InterpolatedStringNode).void }
|
1016
|
+
sig { override.params(node: ::Prism::InterpolatedStringNode).void }
|
1017
1017
|
def visit_interpolated_string_node(node); end
|
1018
1018
|
|
1019
|
-
sig { params(node: ::Prism::StringNode).void }
|
1019
|
+
sig { override.params(node: ::Prism::StringNode).void }
|
1020
1020
|
def visit_string_node(node); end
|
1021
1021
|
|
1022
1022
|
private
|
@@ -1153,6 +1153,12 @@ class RBI::Parser::Visitor < ::Prism::Visitor
|
|
1153
1153
|
|
1154
1154
|
sig { params(node: ::Prism::Node).returns(::String) }
|
1155
1155
|
def node_string!(node); end
|
1156
|
+
|
1157
|
+
sig { params(node: T.nilable(::Prism::Node)).returns(T::Boolean) }
|
1158
|
+
def self?(node); end
|
1159
|
+
|
1160
|
+
sig { params(node: T.nilable(::Prism::Node)).returns(T::Boolean) }
|
1161
|
+
def t_sig_without_runtime?(node); end
|
1156
1162
|
end
|
1157
1163
|
|
1158
1164
|
class RBI::Printer < ::RBI::Visitor
|
@@ -2407,6 +2413,7 @@ class RBI::Sig < ::RBI::NodeWithComments
|
|
2407
2413
|
is_overridable: T::Boolean,
|
2408
2414
|
is_final: T::Boolean,
|
2409
2415
|
allow_incompatible_override: T::Boolean,
|
2416
|
+
without_runtime: T::Boolean,
|
2410
2417
|
type_params: T::Array[::String],
|
2411
2418
|
checked: T.nilable(::Symbol),
|
2412
2419
|
loc: T.nilable(::RBI::Loc),
|
@@ -2414,7 +2421,7 @@ class RBI::Sig < ::RBI::NodeWithComments
|
|
2414
2421
|
block: T.nilable(T.proc.params(node: ::RBI::Sig).void)
|
2415
2422
|
).void
|
2416
2423
|
end
|
2417
|
-
def initialize(params: T.unsafe(nil), return_type: T.unsafe(nil), is_abstract: T.unsafe(nil), is_override: T.unsafe(nil), is_overridable: T.unsafe(nil), is_final: T.unsafe(nil), allow_incompatible_override: T.unsafe(nil), type_params: T.unsafe(nil), checked: T.unsafe(nil), loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
|
2424
|
+
def initialize(params: T.unsafe(nil), return_type: T.unsafe(nil), is_abstract: T.unsafe(nil), is_override: T.unsafe(nil), is_overridable: T.unsafe(nil), is_final: T.unsafe(nil), allow_incompatible_override: T.unsafe(nil), without_runtime: T.unsafe(nil), type_params: T.unsafe(nil), checked: T.unsafe(nil), loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
|
2418
2425
|
|
2419
2426
|
sig { params(param: ::RBI::SigParam).void }
|
2420
2427
|
def <<(param); end
|
@@ -2472,6 +2479,12 @@ class RBI::Sig < ::RBI::NodeWithComments
|
|
2472
2479
|
|
2473
2480
|
sig { returns(T::Array[::String]) }
|
2474
2481
|
def type_params; end
|
2482
|
+
|
2483
|
+
# @return [Boolean]
|
2484
|
+
def without_runtime; end
|
2485
|
+
|
2486
|
+
# @return [Boolean]
|
2487
|
+
def without_runtime=(_arg0); end
|
2475
2488
|
end
|
2476
2489
|
|
2477
2490
|
class RBI::SigParam < ::RBI::NodeWithComments
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexandre Terrasa
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: prism
|
@@ -110,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '0'
|
112
112
|
requirements: []
|
113
|
-
rubygems_version: 3.6.
|
113
|
+
rubygems_version: 3.6.8
|
114
114
|
specification_version: 4
|
115
115
|
summary: RBI generation framework
|
116
116
|
test_files: []
|