Background
tests/test_checker.py has grown to 5,522 lines with 54 test classes covering the full type-checker surface. This is the test-side counterpart to the checker decomposition done in #99.
Proposed split
| New file |
Theme |
tests/test_checker_types.py |
Primitive types, ADTs, generics, type inference |
tests/test_checker_functions.py |
Function signatures, overloading, slot references, De Bruijn ordering |
tests/test_checker_effects.py |
Effect declarations, effect rows, handler typing |
tests/test_checker_contracts.py |
requires/ensures/decreases clauses, precondition/postcondition syntax |
tests/test_checker_modules.py |
Module imports, re-exports, cross-module type visibility |
tests/test_checker_errors.py |
Error message quality, error codes (E1xx, E2xx, E3xx), fix suggestions |
Shared helpers (_check_ok(), _check_err(), _verify_ok(), _verify_err()) move to tests/conftest.py.
Acceptance criteria
- All existing tests preserved
pytest tests/ -v passes
- Each new file is under 1,200 lines
Background
tests/test_checker.pyhas grown to 5,522 lines with 54 test classes covering the full type-checker surface. This is the test-side counterpart to the checker decomposition done in #99.Proposed split
tests/test_checker_types.pytests/test_checker_functions.pytests/test_checker_effects.pytests/test_checker_contracts.pytests/test_checker_modules.pytests/test_checker_errors.pyShared helpers (
_check_ok(),_check_err(),_verify_ok(),_verify_err()) move totests/conftest.py.Acceptance criteria
pytest tests/ -vpasses