• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

source-academy / py-slang / 42494967454
88%

Build:
DEFAULT BRANCH: main
Ran 08 Nov 2026 03:42PM UTC
Jobs 1
Files 210
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

08 Nov 2026 03:28PM UTC coverage: 87.942% (-0.2%) from 88.153%
42494967454

push

github

web-flow
Typed Python §4, phase 3: the evaluators (#636)

* Typed Python §4, phase 3: a step before validation in every engine

The type checker is a step of validating a chunk, after parsing and before the engine's own checks,
in py2js, the CSE machine and the environment stepper alike. It cannot be a FeatureValidator (those
are synchronous and per node; the checker is a worker, looks at the whole text and keeps what it saw
from chunk to chunk), so each engine takes it as an option, `beforeValidation`, called with the text
and the parsed program of each chunk (not the preludes), which may throw and may change the program.

* checkTypedChunk (src/typecheck/typed-chunk.ts), the one function that all engines call: the rules
  of Typed §4 on annotations (the first violation), the checker with the text as written (all errors,
  as StaticTypeErrors; warnings and hints do not stop a program), then the erasure of the types.
* LazyChecker / startBrowserChecker (loader.ts): fetches TypedPy4Checker.js and starts it as a
  worker from a blob: URL when first needed (preload() starts at once), and again after a failure;
  a checker that cannot be started is an error and the program is not run unchecked.
* StaticTypeError(s): line and column, and describe(source), the message with its place, because the
  CSE machine says where an error is only in its message.
* Py2JsSession, PyCseEvaluatorBase and PyEStepperEvaluatorBase take the option; the evaluators of
  Python §4 are unchanged. The helpers that the plain evaluators need to report a type error are in
  conductor/staticTypeErrors.ts, apart from the ones that have the checker (typed.ts), so that a plain
  evaluator does not contain it (the bundles of PyCseEvaluator4 etc. have no trace of it).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Typed Python §4, phase 3: the evaluators TypedPy2Js, TypedPyCse and TypedPyEStepper

Typed Python §4 on three engines, each checking the types first: TypedPy2JsEvaluator4,... (continued)

7439 of 8920 branches covered (83.4%)

Branch coverage included in aggregate %.

140 of 158 new or added lines in 14 files covered. (88.61%)

36 existing lines in 1 file now uncovered.

15403 of 17054 relevant lines covered (90.32%)

301897.72 hits per line

Uncovered Changes

Lines Coverage ∆ File
9
71.74
src/typecheck/loader.ts
3
80.0
src/conductor/TypedPy2JsEvaluator.ts
3
66.67
src/conductor/TypedPyCseEvaluator.ts
3
66.67
src/conductor/TypedPyEStepperEvaluator.ts

Coverage Regressions

Lines Coverage ∆ File
36
40.0
-53.75% src/typecheck/bundler/typed4.ts
Jobs
ID Job ID Ran Files Coverage
1 42494967454.1 08 Nov 2026 03:42PM UTC 210
87.94
GitHub Action Run
Source Files on build 42494967454
  • Tree
  • List 210
  • Changed 9
  • Source Changed 5
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #42494967454
  • f1576ba3 on github
  • Prev Build on main (#42487950578)
  • Next Build on main (#42545900583)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc