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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 30c1564f6fad1d76035f6cd07bf31237251e6c622350aa4911797980b3a17414
4
- data.tar.gz: 1d1350fa25cf2dad93c59e74288372701bfe73c6214d46e279350a953269786d
3
+ metadata.gz: a5d95986e2041432d98662ec8d46d89eb8a1b8cafafd8bba4d78ac7218e4379e
4
+ data.tar.gz: bbc117ade8b85f2834e172f6d7c4fac54c71846634b176b52adf607a0c82d37a
5
5
  SHA512:
6
- metadata.gz: a273b8f7e57c8471e8a9d46f71c7b554e2416243e7ef1c953137720543f7dd70f4166b0c916e327dcb9cf516e0668deaf56027ade2c36485f9fce10cfedb9d9d
7
- data.tar.gz: e03adcd232b2557c68d6a18a62c0e0b1977e8f4cccb3a8718f711ae2ec35ded301026021a7d39829da51286348089cdde3593d0b3bb1703da8d69a86af6364c5
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("sig")
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("sig")
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
@@ -316,6 +316,10 @@ module RBI
316
316
  print_blank_line_before(node)
317
317
  visit_all(node.comments)
318
318
 
319
+ if node.sigs.any?(&:without_runtime)
320
+ printl("# @without_runtime")
321
+ end
322
+
319
323
  if node.sigs.any?(&:is_abstract)
320
324
  printl("# @abstract")
321
325
  end
data/lib/rbi/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module RBI
5
- VERSION = "0.3.2"
5
+ VERSION = "0.3.3"
6
6
  end
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.2
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: 2025-04-10 00:00:00.000000000 Z
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.6
113
+ rubygems_version: 3.6.8
114
114
  specification_version: 4
115
115
  summary: RBI generation framework
116
116
  test_files: []