Enable in tests only via ENV
This commit is contained in:
parent
8d542100a8
commit
1cfee5a1d3
@ -249,6 +249,7 @@ module Homebrew
|
||||
ENV["HOMEBREW_TEST_GENERIC_OS"] = "1" if args.generic?
|
||||
ENV["HOMEBREW_TEST_ONLINE"] = "1" if args.online?
|
||||
ENV["HOMEBREW_SORBET_RUNTIME"] = "1"
|
||||
ENV["HOMEBREW_SORBET_RECURSIVE"] = "1"
|
||||
|
||||
ENV["USER"] ||= system_command!("id", args: ["-nu"]).stdout.chomp
|
||||
|
||||
|
@ -471,6 +471,11 @@ module Homebrew
|
||||
"of macOS. This is useful in development on new macOS versions.",
|
||||
boolean: true,
|
||||
},
|
||||
HOMEBREW_SORBET_RECURSIVE: {
|
||||
description: "If set along with `$HOMEBREW_SORBET_RUNTIME`, enable recursive typechecking using Sorbet. " \
|
||||
"Auomatically enabled when running tests.",
|
||||
boolean: true,
|
||||
},
|
||||
HOMEBREW_SORBET_RUNTIME: {
|
||||
description: "If set, enable runtime typechecking using Sorbet. " \
|
||||
"Set by default for `$HOMEBREW_DEVELOPER` or when running some developer commands.",
|
||||
|
@ -10,6 +10,55 @@ require "extend/module"
|
||||
# There are mechanisms to achieve a middle ground (`default_checked_level`).
|
||||
if ENV["HOMEBREW_SORBET_RUNTIME"]
|
||||
T::Configuration.enable_final_checks_on_hooks
|
||||
if ENV["HOMEBREW_SORBET_RECURSIVE"] == "1"
|
||||
module T
|
||||
module Types
|
||||
class FixedArray < Base
|
||||
def valid?(obj) = recursively_valid?(obj)
|
||||
end
|
||||
|
||||
class FixedHash < Base
|
||||
def valid?(obj) = recursively_valid?(obj)
|
||||
end
|
||||
|
||||
class Intersection < Base
|
||||
def valid?(obj) = recursively_valid?(obj)
|
||||
end
|
||||
|
||||
class TypedArray < TypedEnumerable
|
||||
def valid?(obj) = recursively_valid?(obj)
|
||||
end
|
||||
|
||||
class TypedEnumerable < Base
|
||||
def valid?(obj) = recursively_valid?(obj)
|
||||
end
|
||||
|
||||
class TypedEnumeratorChain < TypedEnumerable
|
||||
def valid?(obj) = recursively_valid?(obj)
|
||||
end
|
||||
|
||||
class TypedEnumeratorLazy < TypedEnumerable
|
||||
def valid?(obj) = recursively_valid?(obj)
|
||||
end
|
||||
|
||||
class TypedHash < TypedEnumerable
|
||||
def valid?(obj) = recursively_valid?(obj)
|
||||
end
|
||||
|
||||
class TypedRange < TypedEnumerable
|
||||
def valid?(obj) = recursively_valid?(obj)
|
||||
end
|
||||
|
||||
class TypedSet < TypedEnumerable
|
||||
def valid?(obj) = recursively_valid?(obj)
|
||||
end
|
||||
|
||||
class Union < Base
|
||||
def valid?(obj) = recursively_valid?(obj)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
# Redefine `T.let`, etc. to make the `checked` parameter default to `false` rather than `true`.
|
||||
# @private
|
||||
@ -47,76 +96,3 @@ else
|
||||
T::Configuration.call_validation_error_handler = ->(signature, opts) {}
|
||||
T::Configuration.inline_type_error_handler = ->(error, opts) {}
|
||||
end
|
||||
|
||||
# TODO: only do this in specs
|
||||
module T
|
||||
module Types
|
||||
class FixedArray < Base
|
||||
def valid?(obj)
|
||||
recursively_valid?(obj)
|
||||
end
|
||||
end
|
||||
|
||||
class FixedHash < Base
|
||||
def valid?(obj)
|
||||
recursively_valid?(obj)
|
||||
end
|
||||
end
|
||||
|
||||
class Intersection < Base
|
||||
def valid?(obj)
|
||||
recursively_valid?(obj)
|
||||
end
|
||||
end
|
||||
|
||||
class TypedArray < TypedEnumerable
|
||||
# overrides Base
|
||||
def valid?(obj)
|
||||
recursively_valid?(obj)
|
||||
end
|
||||
end
|
||||
|
||||
class TypedEnumerable < Base
|
||||
def valid?(obj)
|
||||
recursively_valid?(obj)
|
||||
end
|
||||
end
|
||||
|
||||
class TypedEnumeratorChain < TypedEnumerable
|
||||
def valid?(obj)
|
||||
recursively_valid?(obj)
|
||||
end
|
||||
end
|
||||
|
||||
class TypedEnumeratorLazy < TypedEnumerable
|
||||
def valid?(obj)
|
||||
recursively_valid?(obj)
|
||||
end
|
||||
end
|
||||
|
||||
class TypedHash < TypedEnumerable
|
||||
# overrides Base
|
||||
def valid?(obj)
|
||||
recursively_valid?(obj)
|
||||
end
|
||||
end
|
||||
|
||||
class TypedRange < TypedEnumerable
|
||||
def valid?(obj)
|
||||
recursively_valid?(obj)
|
||||
end
|
||||
end
|
||||
|
||||
class TypedSet < TypedEnumerable
|
||||
def valid?(obj)
|
||||
recursively_valid?(obj)
|
||||
end
|
||||
end
|
||||
|
||||
class Union < Base
|
||||
def valid?(obj)
|
||||
recursively_valid?(obj)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user