SIGN IN SIGN UP
Homebrew / brew UNCLAIMED

🍺 The missing package manager for macOS (or Linux)

0 0 185 Ruby

cask/config: skip runtime sig check on `default` and `canonicalize`

`Cask::Config#default` and `Cask::Config.canonicalize` both have sigs
typed against `ConfigHash`, which is a `T::Hash[Symbol, T.any(LazyObject,
String, Pathname, T::Array[String])]`. Under recursive runtime
type-checking (enabled in CI via `HOMEBREW_SORBET_RECURSIVE=1`) the
checker walks the hash values and forces the `LazyObject` wrapping
`OS::Mac.languages`, which is undefined under the generic-OS test
runner.

`self.defaults` already uses `T::Sig::WithoutRuntime.sig` for exactly
this reason; apply the same treatment to the two adjacent methods that
flow the same hash through. The new line in `Cask::Cask#artifacts_list`
walks `Cask::Config#default` to resolve artifact targets, which is what
surfaced the issue in CI on the generic-OS run.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
C
Carlo Cabrera committed
af03ab555ead3c7885eb15d34dfab86e8a13b35d
Parent: 726f284
Committed by Carlo Cabrera <30379873+carlocab@users.noreply.github.com> on 5/19/2026, 5:01:14 PM