From 82fef2b69d7c09d81ae8d100512ab741528c4d8e Mon Sep 17 00:00:00 2001 From: Hibariya Date: Fri, 19 Jul 2024 14:13:06 +0000 Subject: [PATCH 1/4] Allow a callable object as the :patterns option of the Trace middleware --- known_sig/orthoses/trace.rbs | 10 ++++++++++ known_sig/orthoses/trace/attribute.rbs | 2 +- known_sig/orthoses/trace/method.rbs | 2 +- lib/orthoses/trace.rb | 7 ++++--- lib/orthoses/trace/attribute.rb | 2 +- lib/orthoses/trace/attribute_test.rb | 23 +++++++++++++++++++++++ lib/orthoses/trace/method.rb | 2 +- lib/orthoses/trace/method_test.rb | 25 +++++++++++++++++++++++++ lib/orthoses/trace/targetable.rb | 16 ++++++++++------ sig/orthoses/trace.rbs | 15 ++++++++++----- 10 files changed, 86 insertions(+), 18 deletions(-) create mode 100644 known_sig/orthoses/trace.rbs diff --git a/known_sig/orthoses/trace.rbs b/known_sig/orthoses/trace.rbs new file mode 100644 index 0000000..609482e --- /dev/null +++ b/known_sig/orthoses/trace.rbs @@ -0,0 +1,10 @@ +module Orthoses + class Trace + interface _CallablePatterns + def call: (String, TracePoint) -> bool + end + + def initialize: (Orthoses::_Call loader, patterns: Array[String] | _CallablePatterns, ?sort_union_types: bool?) -> void + def call: () -> Orthoses::store + end +end diff --git a/known_sig/orthoses/trace/attribute.rbs b/known_sig/orthoses/trace/attribute.rbs index 781f4bc..0bc2e92 100644 --- a/known_sig/orthoses/trace/attribute.rbs +++ b/known_sig/orthoses/trace/attribute.rbs @@ -3,7 +3,7 @@ module Orthoses class Attribute include Orthoses::Trace::Targetable - def initialize: (Orthoses::_Call loader, patterns: Array[String], ?sort_union_types: bool?) -> void + def initialize: (Orthoses::_Call loader, patterns: Array[String] | Orthoses::Trace::_CallablePatterns, ?sort_union_types: bool?) -> void def call: () -> Orthoses::store end end diff --git a/known_sig/orthoses/trace/method.rbs b/known_sig/orthoses/trace/method.rbs index f8a168f..08d531a 100644 --- a/known_sig/orthoses/trace/method.rbs +++ b/known_sig/orthoses/trace/method.rbs @@ -3,7 +3,7 @@ module Orthoses class Method include Orthoses::Trace::Targetable - def initialize: (Orthoses::_Call loader, patterns: Array[String], ?sort_union_types: bool?) -> void + def initialize: (Orthoses::_Call loader, patterns: Array[String] | Orthoses::Trace::_CallablePatterns, ?sort_union_types: bool?) -> void def call: () -> Orthoses::store end end diff --git a/lib/orthoses/trace.rb b/lib/orthoses/trace.rb index 7463c59..14739d0 100644 --- a/lib/orthoses/trace.rb +++ b/lib/orthoses/trace.rb @@ -7,14 +7,15 @@ class Trace autoload :Method, 'orthoses/trace/method' autoload :Targetable, 'orthoses/trace/targetable' - def initialize(loader, patterns:) + def initialize(loader, patterns:, sort_union_types: true) @loader = loader @patterns = patterns + @sort_union_types = sort_union_types end def call - @loader = Trace::Attribute.new(@loader, patterns: @patterns) - @loader = Trace::Method.new(@loader, patterns: @patterns) + @loader = Trace::Attribute.new(@loader, patterns: @patterns, sort_union_types: @sort_union_types) + @loader = Trace::Method.new(@loader, patterns: @patterns, sort_union_types: @sort_union_types) @loader.call end end diff --git a/lib/orthoses/trace/attribute.rb b/lib/orthoses/trace/attribute.rb index 56ab1b0..19f3daf 100644 --- a/lib/orthoses/trace/attribute.rb +++ b/lib/orthoses/trace/attribute.rb @@ -64,7 +64,7 @@ def build_trace_hook mod_name = m[1] end next unless mod_name - next unless target?(mod_name) + next unless target?(mod_name, tp1) is_singleton = tp1.self.singleton_class? prefix = is_singleton ? "self." : "" kind = tp1.method_id diff --git a/lib/orthoses/trace/attribute_test.rb b/lib/orthoses/trace/attribute_test.rb index c36ef07..fac7489 100644 --- a/lib/orthoses/trace/attribute_test.rb +++ b/lib/orthoses/trace/attribute_test.rb @@ -119,4 +119,27 @@ class TraceAttributeTest::Foo::Baz t.error("expect=\n```rbs\n#{expect}```\n, but got \n```rbs\n#{actual}```\n") end end + + def test_pattern_proc(t) + patterns = ->(name, tp) { tp.self.name == "TraceAttributeTest::Foo" } + store = Orthoses::Trace::Attribute.new(->{ + LOADER_ATTRIBUTE.call + foo = Foo.new + foo.attr_read_publ + Foo::Bar.new.attr_acce_publ = /reg/ + + Orthoses::Utils.new_store + }, patterns: patterns).call + + actual = store.map { |n, c| c.to_rbs }.join("\n") + expect = <<~RBS + class TraceAttributeTest::Foo + attr_accessor attr_acce_priv: Integer + attr_reader attr_read_publ: Symbol + end + RBS + unless expect == actual + t.error("expect=\n```rbs\n#{expect}```\n, but got \n```rbs\n#{actual}```\n") + end + end end diff --git a/lib/orthoses/trace/method.rb b/lib/orthoses/trace/method.rb index ba84803..670f8fe 100644 --- a/lib/orthoses/trace/method.rb +++ b/lib/orthoses/trace/method.rb @@ -44,7 +44,7 @@ def build_trace_point kind = :instance end - next unless target?(mod_name) + next unless target?(mod_name, tp) case tp.event when :call diff --git a/lib/orthoses/trace/method_test.rb b/lib/orthoses/trace/method_test.rb index 70cf54d..ac4012f 100644 --- a/lib/orthoses/trace/method_test.rb +++ b/lib/orthoses/trace/method_test.rb @@ -140,6 +140,31 @@ def self.a: () -> Integer end end + def test_pattern_proc(t) + # only non-private methods + patterns = ->(name, tp) { name == "TraceMethodTest::M" && !tp.self.private_methods.include?(tp.method_id) } + store = Orthoses::Trace::Method.new(-> { + LOADER_METHOD.call + + m = M.new(100) + m.a_ten + m.call_priv(true) + + Orthoses::Utils.new_store + }, patterns: patterns).call + + actual = store.map { |n, c| c.to_rbs }.join("\n") + expect = <<~RBS + class TraceMethodTest::M + def a_ten: () -> Integer + def call_priv: (bool c) -> Integer + end + RBS + unless expect == actual + t.error("expect=\n```rbs\n#{expect}```\n, but got \n```rbs\n#{actual}```\n") + end + end + def test_raise_first(t) Orthoses::Trace::Method.new(->{ raise rescue nil diff --git a/lib/orthoses/trace/targetable.rb b/lib/orthoses/trace/targetable.rb index 63545ec..134f2d4 100644 --- a/lib/orthoses/trace/targetable.rb +++ b/lib/orthoses/trace/targetable.rb @@ -3,12 +3,16 @@ module Orthoses class Trace module Targetable - def target?(name) - @patterns.any? do |pattern| - if pattern.end_with?("*") - (name || "").start_with?(pattern.chop) - else - name == pattern + def target?(name, tp) + if @patterns.respond_to?(:call) + @patterns.call(name, tp) + else + @patterns.any? do |pattern| + if pattern.end_with?("*") + (name || "").start_with?(pattern.chop) + else + name == pattern + end end end end diff --git a/sig/orthoses/trace.rbs b/sig/orthoses/trace.rbs index dad4105..1fa3f9f 100644 --- a/sig/orthoses/trace.rbs +++ b/sig/orthoses/trace.rbs @@ -3,8 +3,9 @@ class Orthoses::Trace @loader: untyped @patterns: untyped - def initialize: (untyped loader, patterns: untyped) -> void - def call: () -> untyped + @sort_union_types: untyped + def initialize: (Orthoses::_Call loader, patterns: Array[String | _CallablePatterns], ?sort_union_types: bool?) -> void + def call: () -> Orthoses::store end class Orthoses::Trace::Attribute @@ -12,7 +13,7 @@ class Orthoses::Trace::Attribute @patterns: untyped @sort_union_types: untyped @captured_dict: untyped - def initialize: (Orthoses::_Call loader, patterns: Array[String], ?sort_union_types: bool?) -> void + def initialize: (Orthoses::_Call loader, patterns: Array[String | Orthoses::Trace::_CallablePatterns], ?sort_union_types: bool?) -> void def call: () -> Orthoses::store private def build_trace_hook: () -> untyped include Orthoses::Trace::Targetable @@ -35,7 +36,7 @@ class Orthoses::Trace::Method @stack: untyped @args_return_map: untyped @alias_map: untyped - def initialize: (Orthoses::_Call loader, patterns: Array[String], ?sort_union_types: bool?) -> void + def initialize: (Orthoses::_Call loader, patterns: Array[String | Orthoses::Trace::_CallablePatterns], ?sort_union_types: bool?) -> void def call: () -> Orthoses::store private def build_trace_point: () -> untyped private def build_members: () -> untyped @@ -48,5 +49,9 @@ class Orthoses::Trace::Method::Info < ::Struct[untyped] end module Orthoses::Trace::Targetable - def target?: (untyped name) -> untyped + def target?: (untyped name, untyped tp) -> untyped +end + +interface Orthoses::Trace::_CallablePatterns + def call: (String, TracePoint) -> bool end From 00a5d4937fcaea0e7205ddd8f19f1e701c57b04b Mon Sep 17 00:00:00 2001 From: Hibariya Date: Sat, 20 Jul 2024 02:10:53 +0000 Subject: [PATCH 2/4] Don't have to be exact bool / forgot to run rake sig --- known_sig/orthoses/trace.rbs | 2 +- sig/orthoses/trace.rbs | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/known_sig/orthoses/trace.rbs b/known_sig/orthoses/trace.rbs index 609482e..456204d 100644 --- a/known_sig/orthoses/trace.rbs +++ b/known_sig/orthoses/trace.rbs @@ -1,7 +1,7 @@ module Orthoses class Trace interface _CallablePatterns - def call: (String, TracePoint) -> bool + def call: (String, TracePoint) -> boolish end def initialize: (Orthoses::_Call loader, patterns: Array[String] | _CallablePatterns, ?sort_union_types: bool?) -> void diff --git a/sig/orthoses/trace.rbs b/sig/orthoses/trace.rbs index 1fa3f9f..b80d52f 100644 --- a/sig/orthoses/trace.rbs +++ b/sig/orthoses/trace.rbs @@ -4,7 +4,7 @@ class Orthoses::Trace @loader: untyped @patterns: untyped @sort_union_types: untyped - def initialize: (Orthoses::_Call loader, patterns: Array[String | _CallablePatterns], ?sort_union_types: bool?) -> void + def initialize: (Orthoses::_Call loader, patterns: Array[String] | _CallablePatterns, ?sort_union_types: bool?) -> void def call: () -> Orthoses::store end @@ -13,7 +13,7 @@ class Orthoses::Trace::Attribute @patterns: untyped @sort_union_types: untyped @captured_dict: untyped - def initialize: (Orthoses::_Call loader, patterns: Array[String | Orthoses::Trace::_CallablePatterns], ?sort_union_types: bool?) -> void + def initialize: (Orthoses::_Call loader, patterns: Array[String] | Orthoses::Trace::_CallablePatterns, ?sort_union_types: bool?) -> void def call: () -> Orthoses::store private def build_trace_hook: () -> untyped include Orthoses::Trace::Targetable @@ -36,7 +36,7 @@ class Orthoses::Trace::Method @stack: untyped @args_return_map: untyped @alias_map: untyped - def initialize: (Orthoses::_Call loader, patterns: Array[String | Orthoses::Trace::_CallablePatterns], ?sort_union_types: bool?) -> void + def initialize: (Orthoses::_Call loader, patterns: Array[String] | Orthoses::Trace::_CallablePatterns, ?sort_union_types: bool?) -> void def call: () -> Orthoses::store private def build_trace_point: () -> untyped private def build_members: () -> untyped @@ -53,5 +53,5 @@ module Orthoses::Trace::Targetable end interface Orthoses::Trace::_CallablePatterns - def call: (String, TracePoint) -> bool + def call: (String, TracePoint) -> boolish end From 31747747080285285c1506245cd0804532db3abc Mon Sep 17 00:00:00 2001 From: Hibariya Date: Sun, 15 Dec 2024 10:25:58 +0000 Subject: [PATCH 3/4] Exposing the TracePoint object seems overly dependent on the impl --- lib/orthoses/trace/attribute.rb | 2 +- lib/orthoses/trace/attribute_test.rb | 2 +- lib/orthoses/trace/method.rb | 2 +- lib/orthoses/trace/method_test.rb | 4 +++- lib/orthoses/trace/targetable.rb | 4 ++-- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/orthoses/trace/attribute.rb b/lib/orthoses/trace/attribute.rb index 19f3daf..56ab1b0 100644 --- a/lib/orthoses/trace/attribute.rb +++ b/lib/orthoses/trace/attribute.rb @@ -64,7 +64,7 @@ def build_trace_hook mod_name = m[1] end next unless mod_name - next unless target?(mod_name, tp1) + next unless target?(mod_name) is_singleton = tp1.self.singleton_class? prefix = is_singleton ? "self." : "" kind = tp1.method_id diff --git a/lib/orthoses/trace/attribute_test.rb b/lib/orthoses/trace/attribute_test.rb index fac7489..abfcfe7 100644 --- a/lib/orthoses/trace/attribute_test.rb +++ b/lib/orthoses/trace/attribute_test.rb @@ -121,7 +121,7 @@ class TraceAttributeTest::Foo::Baz end def test_pattern_proc(t) - patterns = ->(name, tp) { tp.self.name == "TraceAttributeTest::Foo" } + patterns = ->(name) { name == "TraceAttributeTest::Foo" } store = Orthoses::Trace::Attribute.new(->{ LOADER_ATTRIBUTE.call foo = Foo.new diff --git a/lib/orthoses/trace/method.rb b/lib/orthoses/trace/method.rb index 670f8fe..ba84803 100644 --- a/lib/orthoses/trace/method.rb +++ b/lib/orthoses/trace/method.rb @@ -44,7 +44,7 @@ def build_trace_point kind = :instance end - next unless target?(mod_name, tp) + next unless target?(mod_name) case tp.event when :call diff --git a/lib/orthoses/trace/method_test.rb b/lib/orthoses/trace/method_test.rb index ac4012f..a87ea41 100644 --- a/lib/orthoses/trace/method_test.rb +++ b/lib/orthoses/trace/method_test.rb @@ -142,7 +142,7 @@ def self.a: () -> Integer def test_pattern_proc(t) # only non-private methods - patterns = ->(name, tp) { name == "TraceMethodTest::M" && !tp.self.private_methods.include?(tp.method_id) } + patterns = ->(name) { name == "TraceMethodTest::M" } store = Orthoses::Trace::Method.new(-> { LOADER_METHOD.call @@ -156,7 +156,9 @@ def test_pattern_proc(t) actual = store.map { |n, c| c.to_rbs }.join("\n") expect = <<~RBS class TraceMethodTest::M + private def initialize: (Integer a) -> void def a_ten: () -> Integer + private def priv: (bool bool) -> Integer def call_priv: (bool c) -> Integer end RBS diff --git a/lib/orthoses/trace/targetable.rb b/lib/orthoses/trace/targetable.rb index 134f2d4..6b964ee 100644 --- a/lib/orthoses/trace/targetable.rb +++ b/lib/orthoses/trace/targetable.rb @@ -3,9 +3,9 @@ module Orthoses class Trace module Targetable - def target?(name, tp) + def target?(name) if @patterns.respond_to?(:call) - @patterns.call(name, tp) + @patterns.call(name) else @patterns.any? do |pattern| if pattern.end_with?("*") From 880f82e33d23d0f005d8b43f4e74cc1b41ed2c36 Mon Sep 17 00:00:00 2001 From: Hibariya Date: Sun, 15 Dec 2024 10:31:25 +0000 Subject: [PATCH 4/4] Introduce :trace_point_filter option for filtering purpose and re-run rake sig --- known_sig/orthoses/trace.rbs | 6 +++--- known_sig/orthoses/trace/attribute.rbs | 2 +- known_sig/orthoses/trace/method.rbs | 2 +- lib/orthoses/trace.rb | 7 ++++--- lib/orthoses/trace/attribute.rb | 3 ++- lib/orthoses/trace/attribute_test.rb | 6 +++--- lib/orthoses/trace/method.rb | 3 ++- lib/orthoses/trace/method_test.rb | 7 +++---- lib/orthoses/trace/targetable.rb | 16 +++++++--------- sig/orthoses/content.rbs | 1 + sig/orthoses/resolve_type_names.rbs | 9 +++++++++ sig/orthoses/trace.rbs | 15 +++++++++------ 12 files changed, 45 insertions(+), 32 deletions(-) diff --git a/known_sig/orthoses/trace.rbs b/known_sig/orthoses/trace.rbs index 456204d..26c93f7 100644 --- a/known_sig/orthoses/trace.rbs +++ b/known_sig/orthoses/trace.rbs @@ -1,10 +1,10 @@ module Orthoses class Trace - interface _CallablePatterns - def call: (String, TracePoint) -> boolish + interface _CallableFilter + def call: (String) -> boolish end - def initialize: (Orthoses::_Call loader, patterns: Array[String] | _CallablePatterns, ?sort_union_types: bool?) -> void + def initialize: (Orthoses::_Call loader, patterns: Array[String], trace_point_filter: _CallableFilter?, ?sort_union_types: bool?) -> void def call: () -> Orthoses::store end end diff --git a/known_sig/orthoses/trace/attribute.rbs b/known_sig/orthoses/trace/attribute.rbs index 0bc2e92..8ca8346 100644 --- a/known_sig/orthoses/trace/attribute.rbs +++ b/known_sig/orthoses/trace/attribute.rbs @@ -3,7 +3,7 @@ module Orthoses class Attribute include Orthoses::Trace::Targetable - def initialize: (Orthoses::_Call loader, patterns: Array[String] | Orthoses::Trace::_CallablePatterns, ?sort_union_types: bool?) -> void + def initialize: (Orthoses::_Call loader, patterns: Array[String], trace_point_filter: Orthoses::Trace::_CallableFilter?, ?sort_union_types: bool?) -> void def call: () -> Orthoses::store end end diff --git a/known_sig/orthoses/trace/method.rbs b/known_sig/orthoses/trace/method.rbs index 08d531a..217b8e0 100644 --- a/known_sig/orthoses/trace/method.rbs +++ b/known_sig/orthoses/trace/method.rbs @@ -3,7 +3,7 @@ module Orthoses class Method include Orthoses::Trace::Targetable - def initialize: (Orthoses::_Call loader, patterns: Array[String] | Orthoses::Trace::_CallablePatterns, ?sort_union_types: bool?) -> void + def initialize: (Orthoses::_Call loader, patterns: Array[String], trace_point_filter: Orthoses::Trace::_CallableFilter?, ?sort_union_types: bool?) -> void def call: () -> Orthoses::store end end diff --git a/lib/orthoses/trace.rb b/lib/orthoses/trace.rb index 14739d0..9ab759e 100644 --- a/lib/orthoses/trace.rb +++ b/lib/orthoses/trace.rb @@ -7,15 +7,16 @@ class Trace autoload :Method, 'orthoses/trace/method' autoload :Targetable, 'orthoses/trace/targetable' - def initialize(loader, patterns:, sort_union_types: true) + def initialize(loader, patterns:, trace_point_filter: nil, sort_union_types: true) @loader = loader @patterns = patterns + @trace_point_filter = trace_point_filter @sort_union_types = sort_union_types end def call - @loader = Trace::Attribute.new(@loader, patterns: @patterns, sort_union_types: @sort_union_types) - @loader = Trace::Method.new(@loader, patterns: @patterns, sort_union_types: @sort_union_types) + @loader = Trace::Attribute.new(@loader, patterns: @patterns, trace_point_filter: @trace_point_filter, sort_union_types: @sort_union_types) + @loader = Trace::Method.new(@loader, patterns: @patterns, trace_point_filter: @trace_point_filter, sort_union_types: @sort_union_types) @loader.call end end diff --git a/lib/orthoses/trace/attribute.rb b/lib/orthoses/trace/attribute.rb index 56ab1b0..2003a1e 100644 --- a/lib/orthoses/trace/attribute.rb +++ b/lib/orthoses/trace/attribute.rb @@ -23,9 +23,10 @@ def attr_writer(*names) include Targetable - def initialize(loader, patterns:, sort_union_types: true) + def initialize(loader, patterns:, trace_point_filter: nil, sort_union_types: true) @loader = loader @patterns = patterns + @trace_point_filter = trace_point_filter @sort_union_types = sort_union_types @captured_dict = Hash.new { |h, k| h[k] = Hash.new { |hh, kk| hh[kk] = [] } } diff --git a/lib/orthoses/trace/attribute_test.rb b/lib/orthoses/trace/attribute_test.rb index abfcfe7..139518b 100644 --- a/lib/orthoses/trace/attribute_test.rb +++ b/lib/orthoses/trace/attribute_test.rb @@ -120,8 +120,8 @@ class TraceAttributeTest::Foo::Baz end end - def test_pattern_proc(t) - patterns = ->(name) { name == "TraceAttributeTest::Foo" } + def test_trace_point_filter(t) + trace_point_filter = ->(name) { name == "TraceAttributeTest::Foo" } store = Orthoses::Trace::Attribute.new(->{ LOADER_ATTRIBUTE.call foo = Foo.new @@ -129,7 +129,7 @@ def test_pattern_proc(t) Foo::Bar.new.attr_acce_publ = /reg/ Orthoses::Utils.new_store - }, patterns: patterns).call + }, patterns: %w[*], trace_point_filter: trace_point_filter).call actual = store.map { |n, c| c.to_rbs }.join("\n") expect = <<~RBS diff --git a/lib/orthoses/trace/method.rb b/lib/orthoses/trace/method.rb index ba84803..3e1dd7a 100644 --- a/lib/orthoses/trace/method.rb +++ b/lib/orthoses/trace/method.rb @@ -7,9 +7,10 @@ class Method Info = Struct.new(:key, :op_name_types, :raised, keyword_init: true) include Targetable - def initialize(loader, patterns:, sort_union_types: true) + def initialize(loader, patterns:, trace_point_filter: nil, sort_union_types: true) @loader = loader @patterns = patterns + @trace_point_filter = trace_point_filter @sort_union_types = sort_union_types @stack = [] diff --git a/lib/orthoses/trace/method_test.rb b/lib/orthoses/trace/method_test.rb index a87ea41..ea1ce4a 100644 --- a/lib/orthoses/trace/method_test.rb +++ b/lib/orthoses/trace/method_test.rb @@ -140,9 +140,8 @@ def self.a: () -> Integer end end - def test_pattern_proc(t) - # only non-private methods - patterns = ->(name) { name == "TraceMethodTest::M" } + def test_trace_point_filter(t) + trace_point_filter = ->(name) { name == "TraceMethodTest::M" } store = Orthoses::Trace::Method.new(-> { LOADER_METHOD.call @@ -151,7 +150,7 @@ def test_pattern_proc(t) m.call_priv(true) Orthoses::Utils.new_store - }, patterns: patterns).call + }, patterns: %w[*], trace_point_filter: trace_point_filter).call actual = store.map { |n, c| c.to_rbs }.join("\n") expect = <<~RBS diff --git a/lib/orthoses/trace/targetable.rb b/lib/orthoses/trace/targetable.rb index 6b964ee..1d260c7 100644 --- a/lib/orthoses/trace/targetable.rb +++ b/lib/orthoses/trace/targetable.rb @@ -4,15 +4,13 @@ module Orthoses class Trace module Targetable def target?(name) - if @patterns.respond_to?(:call) - @patterns.call(name) - else - @patterns.any? do |pattern| - if pattern.end_with?("*") - (name || "").start_with?(pattern.chop) - else - name == pattern - end + return false if @trace_point_filter && !@trace_point_filter.call(name) + + @patterns.any? do |pattern| + if pattern.end_with?("*") + (name || "").start_with?(pattern.chop) + else + name == pattern end end end diff --git a/sig/orthoses/content.rbs b/sig/orthoses/content.rbs index ff635f5..7465a68 100644 --- a/sig/orthoses/content.rbs +++ b/sig/orthoses/content.rbs @@ -86,6 +86,7 @@ class Orthoses::Content::HeaderBuilder @resolver: untyped def initialize: (env: untyped) -> void def build: (entry: untyped, ?name_hint: untyped?) -> untyped + private def resolve_full_name: (entry: untyped) -> untyped private def build_module: (entry: untyped, ?name_hint: untyped?) -> ::String private def build_class: (entry: untyped, ?name_hint: untyped?) -> ::String private def build_super_class: (untyped primary) -> (nil | untyped) diff --git a/sig/orthoses/resolve_type_names.rbs b/sig/orthoses/resolve_type_names.rbs index a80ea96..2816d42 100644 --- a/sig/orthoses/resolve_type_names.rbs +++ b/sig/orthoses/resolve_type_names.rbs @@ -5,4 +5,13 @@ class Orthoses::ResolveTypeNames @loader: untyped def initialize: (untyped loader) -> void def call: () -> untyped + private def content_header: (untyped entry) -> untyped + private def class_header: (untyped decl) -> ::String + private def module_header: (untyped decl) -> ::String +end + +module Orthoses::ResolveTypeNames::WriterCopy + def name_and_args: (untyped name, untyped args) -> (::String | nil) + + def name_and_params: (untyped name, untyped params) -> ::String end diff --git a/sig/orthoses/trace.rbs b/sig/orthoses/trace.rbs index b80d52f..db4cb18 100644 --- a/sig/orthoses/trace.rbs +++ b/sig/orthoses/trace.rbs @@ -3,17 +3,19 @@ class Orthoses::Trace @loader: untyped @patterns: untyped + @trace_point_filter: untyped @sort_union_types: untyped - def initialize: (Orthoses::_Call loader, patterns: Array[String] | _CallablePatterns, ?sort_union_types: bool?) -> void + def initialize: (Orthoses::_Call loader, patterns: Array[String], trace_point_filter: _CallableFilter?, ?sort_union_types: bool?) -> void def call: () -> Orthoses::store end class Orthoses::Trace::Attribute @loader: untyped @patterns: untyped + @trace_point_filter: untyped @sort_union_types: untyped @captured_dict: untyped - def initialize: (Orthoses::_Call loader, patterns: Array[String] | Orthoses::Trace::_CallablePatterns, ?sort_union_types: bool?) -> void + def initialize: (Orthoses::_Call loader, patterns: Array[String], trace_point_filter: Orthoses::Trace::_CallableFilter?, ?sort_union_types: bool?) -> void def call: () -> Orthoses::store private def build_trace_hook: () -> untyped include Orthoses::Trace::Targetable @@ -32,11 +34,12 @@ end class Orthoses::Trace::Method @loader: untyped @patterns: untyped + @trace_point_filter: untyped @sort_union_types: untyped @stack: untyped @args_return_map: untyped @alias_map: untyped - def initialize: (Orthoses::_Call loader, patterns: Array[String] | Orthoses::Trace::_CallablePatterns, ?sort_union_types: bool?) -> void + def initialize: (Orthoses::_Call loader, patterns: Array[String], trace_point_filter: Orthoses::Trace::_CallableFilter?, ?sort_union_types: bool?) -> void def call: () -> Orthoses::store private def build_trace_point: () -> untyped private def build_members: () -> untyped @@ -49,9 +52,9 @@ class Orthoses::Trace::Method::Info < ::Struct[untyped] end module Orthoses::Trace::Targetable - def target?: (untyped name, untyped tp) -> untyped + def target?: (untyped name) -> (false | untyped) end -interface Orthoses::Trace::_CallablePatterns - def call: (String, TracePoint) -> boolish +interface Orthoses::Trace::_CallableFilter + def call: (String) -> boolish end