Remove new from reserved keywords

This effectively allows stubs to be placed on the `new` method for types.
A strange issue arose when the keyword was allowed.
The compiler failed to resolve the Stub type from the Double initializer.
The error trace goes through null_double_spec.cr.
Running just that spec file confirms the issue is there, but running other individual files doesn't produce the error.
As a workaround, I've put the full path of Stub in the initializer.
This commit is contained in:
Michael Miller 2022-07-12 22:30:04 -06:00
parent fe88eefa86
commit 2e5f822e1d
No known key found for this signature in database
GPG key ID: 32B47AE8F388A1FF
3 changed files with 4 additions and 7 deletions

View file

@ -2,6 +2,6 @@ module Spectator
module DSL
# Keywords that cannot be used in specs using the DSL.
# These are either problematic or reserved for internal use.
RESERVED_KEYWORDS = %i[initialize finalize class new allocate]
RESERVED_KEYWORDS = %i[initialize finalize class allocate]
end
end

View file

@ -74,7 +74,7 @@ module Spectator
# Creates the double.
#
# An initial set of *stubs* can be provided.
def initialize(@stubs : Array(Stub) = [] of Stub)
def initialize(@stubs : Array(::Spectator::Stub) = [] of ::Spectator::Stub)
end
# Creates the double.