module T::Private::RuntimeLevels

def self._toggle_checking_tests(checked)

def self._toggle_checking_tests(checked)
  @check_tests = checked
end

def self.check_tests?

def self.check_tests?
  # Assume that this code path means that some `sig.checked(:tests)`
  # has been wrapped (or not wrapped) already, which is a trapdoor
  # for toggling `@check_tests`.
  @wrapped_tests_with_validation = true
  @check_tests
end

def self.default_checked_level

def self.default_checked_level
  @has_read_default_checked_level = true
  @default_checked_level
end

def self.default_checked_level=(default_checked_level)

def self.default_checked_level=(default_checked_level)
  if @has_read_default_checked_level
    raise "Set the default checked level earlier. There are already some methods whose sig blocks have evaluated which would not be affected by the new default."
  end
  if !LEVELS.include?(default_checked_level)
    raise "Invalid `checked` level '#{default_checked_level}'. Use one of: #{LEVELS}."
  end
  @default_checked_level = default_checked_level
end

def self.enable_checking_in_tests

def self.enable_checking_in_tests
  if !@check_tests && @wrapped_tests_with_validation
    all_checked_tests_sigs = T::Private::Methods.all_checked_tests_sigs
    locations = all_checked_tests_sigs.map {|sig| sig.method.source_location.join(':')}.join("\n- ")
    raise "Toggle `:tests`-level runtime type checking earlier. " \
      "There are already some methods wrapped with `sig.checked(:tests)`:\n" \
      "- #{locations}"
  end
  _toggle_checking_tests(true)
end

def self.set_default_checked_level_from_environment

def self.set_default_checked_level_from_environment
_RUNTIME_DEFAULT_CHECKED_LEVEL']
ked_level = level.to_sym

def self.set_enable_checking_in_tests_from_environment

def self.set_enable_checking_in_tests_from_environment
IME_ENABLE_CHECKING_IN_TESTS']
n_tests