module RBS module UnitTest module Spy def self.wrap: [T] (untyped object, Symbol method_name) -> WrapSpy[T] | [T, S] (untyped object, Symbol method_name) { (WrapSpy[T], T) -> S } -> S class WrapSpy[T] attr_accessor callback: ^(Test::CallTrace) -> void attr_reader object: T attr_reader method_name: Symbol def initialize: (object: T, method_name: Symbol) -> void def wrapped_object: () -> untyped end end end end class Proc def ruby2_keywords: () -> self end class Module def ruby2_keywords: (*Symbol) -> void end