static β€” COVERAGE

Validation coverage

Run prove6 -Ilib t. CI runs the suite on Rakudo 2026.09 and latest across Linux, macOS, and Windows. Local verification is not a substitute for those platform jobs completing on GitHub.

AreaCases exercisedTests
Policies and diagnosticsFour warn/fail policies, aggregation, source locations, native SORRY output, structured compiler errors, explicit CU, no runtime executiont/01-basic, t/07-diagnostics
Returns and flow.are, explicit/implicit exits, nested routines, forward/mutual calls, recursion, shadowing, branch/short-circuit effects, loop wideningt/02-inference, t/06-regressions, t/11-state-and-safety
Calls and contractsPositional/named/optional/slurpy arguments, aliases, arity, captures, methods, private methods, inheritance, roles, :D/:U, defaultst/03-calls, t/09-signature-coverage
Method existenceExact class/instance/primitive receivers, inheritance, broad receivers, FALLBACK, optional dispatch, four policies and opt-outt/13-method-existence
Multi and genericsNominal and constrained specificity, fallback candidates, unresolved constraints, direct ::T argument/return binding, nested genericst/09-signature-coverage
PredicatesPositive/negative cases for parameters, variables, defaults, returns, named arguments, subsets and nested subsets; arithmetic, comparisons, Boolean combinations, intervals, literal constraints, type junctions, primitive string lengthst/08-constraints
Collections and stateTyped initialization/reassignment/binding, element writes and insertions, typed hash keys, scalar aliases, missing indices, no-argument CORE pick/roll element alternatives and empty arrays, mutable arguments, captured writes and loss of stale content assumptionst/02-inference, t/04-collections, t/08-constraints, t/11-state-and-safety
Nominal typesConcrete Int/Str/Rat/Num/Bool against Int/Str/Rat/Num/Bool/Numeric/Real/Cool/Any/Mu/Int:D/Int:U, compared with Raku's checkst/10-type-matrix
Native storageNominal rejection, integer narrowing and unsigned wrapping, subsequent predicates on the stored resultt/05-boundaries, t/08-constraints
Unit boundariesExternal signatures on/off, missing external returns, external bodies excluded, opted-in module precompilationt/05-boundaries, t/06-regressions
Bounded/non-executing analysisNo execution of opaque predicates, overloaded comparisons or predicate loops; exponent budget; state reset on analyzer reuset/11-state-and-safety, t/12-dynamic-coverage
Containers and effectsReadonly/rw/copy/raw parameters, finite destructuring and nested sub-signatures, immutable/element bindings, fixed array shape and bounds, given arms, exception handlers, deferred captures, gather/start/supply payloads and tap contracts, hyper methods/operatorst/15-containers-and-effects
CLIFiles/stdin, per-unit isolation, include-path forwarding, repeatable -I/-M, policies, exit status and original source locationst/14-cli
Explicit uncertaintyDynamic destructuring, proxies/raw containers, indirect calls, dynamic symbols/methods, regex constraints, EVAL, virtual/role dispatch, opaque smartmatches, dynamic dimensions/indices and hyper shapes, deferred mutationt/09-signature-coverage, t/12-dynamic-coverage

An inconclusive test must pass fail-on-mismatch and produce a [static:unverifiable] compilation error under fail-on-unverifiable. Predicates also exercise both warning policies. Unsupported constructs must not crash the analyzer or be mislabeled as proven nominal incompatibilities.

The safe predicate interpreter is intentionally finite. Arbitrary predicates, regex semantics, external routine bodies, arbitrary reflective mutation, complete dependent typing, and the full Raku dispatch/effect system are not proven by these tests. Newly encountered syntax still needs a regression case. Raku's own BEGIN and other compile-time activity remains normal language behavior; the analyzer does not suppress it.

static v0.0.1

Opt-in compile-time type checking for the current RakuAST compilation unit

Authors

  • Fernando Correa de Oliveira

License

Artistic-2.0

Dependencies

Test Dependencies

Provides

  • static
  • static::Analyzer
  • static::CLI
  • static::Predicates
  • static::Types

The Camelia image is copyright 2009 by Larry Wall. "Raku" is a trademark of the Yet Another Society. All rights reserved.

Built with Podlite β€” the markup and publishing tools behind this site.