Skip to content

Split tests/test_checker.py (5,522 lines) into phase-focused test files #420

@aallan

Description

@aallan

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    refactorCode refactoring and structural improvements

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions