diff --git a/src/spectator/mocks/arguments.cr b/src/spectator/mocks/arguments.cr index a12aea9..96ae8f9 100644 --- a/src/spectator/mocks/arguments.cr +++ b/src/spectator/mocks/arguments.cr @@ -18,12 +18,12 @@ module Spectator end # Constructs an instance from literal arguments. - def self.capture(*args, **kwargs) : self - new(args, kwargs) + def self.capture(*args, **kwargs) : AbstractArguments + new(args, kwargs).as(AbstractArguments) end # Instance of empty arguments. - class_getter empty : Arguments(Tuple(), NamedTuple()) = capture + class_getter empty : AbstractArguments = capture # Returns the positional argument at the specified index. def [](index : Int) diff --git a/src/spectator/mocks/method_call.cr b/src/spectator/mocks/method_call.cr index 758a795..5604cad 100644 --- a/src/spectator/mocks/method_call.cr +++ b/src/spectator/mocks/method_call.cr @@ -11,12 +11,12 @@ module Spectator getter arguments : AbstractArguments # Creates a method call. - def initialize(@method : Symbol, @arguments : Arguments = Arguments.empty) + def initialize(@method : Symbol, @arguments : AbstractArguments = Arguments.empty) end # Creates a method call by splatting its arguments. def self.capture(method : Symbol, *args, **kwargs) - arguments = Arguments.new(args, kwargs) + arguments = Arguments.new(args, kwargs).as(AbstractArguments) new(method, arguments) end diff --git a/src/spectator/mocks/proc_stub.cr b/src/spectator/mocks/proc_stub.cr index 8cfa57e..d20cc9c 100644 --- a/src/spectator/mocks/proc_stub.cr +++ b/src/spectator/mocks/proc_stub.cr @@ -29,7 +29,7 @@ module Spectator module StubModifiers # Returns a new stub with an argument constraint. def with(*args, **kwargs, &block : AbstractArguments -> T) forall T - constraint = Arguments.new(args, kwargs) + constraint = Arguments.new(args, kwargs).as(AbstractArguments) ProcStub(T).new(method, block, constraint, location) end end