Full Test Follow-Up - 2026-03-28
What Closed In This Pass
- Parser AST dump canonicalization was restored at the generator level.
parameter(...)->Param(...)returnType->return- method
bodywrapper removed in callable dumps - lambda structural dump now unwraps to
MethodDecl(<lambda>)
- Flow
matchstatement parsing was fixed without weakening the declared grammar.- Rejected approach: shrinking the plugin rule to only
{ token = "KW_MATCH" }just to force statement selection. - Accepted approach: keep the full
matchsyntax rule inmorphs/Flow/blocks/branch_block/block.tomland align the parser probe with the plugin's real arm-body behavior. - Rule of record: never "fix" a parser bug by broadening or weakening a plugin-owned syntax contract until it stops failing. Fix the parser/probe so it can honor the full contract.
- Rejected approach: shrinking the plugin rule to only
- Confirmed passing targeted behavior tests:
parse__method_declarationparse__lambda_arrow_expressionparse__grouped_call_argumentsparse__grouped_expression_and_lambda_disambiguationparse__call_accepts_expression_argumentsu038_overload_select_by_typeu238_codegen_match_statement_branch_isolation_variant
- Types parser fixture drift also corrected:
types__generic_class_instantiation
Full Rerun Snapshot
Observed from .\morphc.bat build --test on 2026-03-28:
- Unit tests: clean in the observed run
morphs/Test/tests:431passed,108failed,2timeoutmorphs/Types/tests:13passed,2failed during the rerun snapshotmorphs/Core/tests: remaining observed failures were down to a small structural/semantic subset during the rerun
One Types structural failure was fixed immediately after the rerun:
types__generic_class_instantiationnow passes
Highest-Signal Remaining Clusters
Approximate recurring failure signals from the rerun:
| Cluster | Signal | Approx. frequency | Notes |
|---|---|---|---|
| Lambda/dynamic call lowering | CORE0001 / Failed to build call argument for 'Apply'/'Map'/'Run' | high | Anonymous callable lowering is still incomplete |
| Parser regressions | CORE0102 / Expected expression, got '[' or got 'match' | high | Array/collection literals and some match forms still broken |
| Captured outer state in local callables | CORE2201 / Undefined identifier: x/k/hit | medium | Local methods/closures are not seeing outer bindings in several regressions |
| Diagnostic expectation drift | CORE0201 or expected-code mismatches | medium | Some tests now produce a more specific diagnostic than the old expected code |
| Numeric builtins / overloads | Math.Abs, ambiguous overload cases | medium | Type routing still unstable in a few runtime regressions |
Immediate Next Targets
- Finish anonymous lambda lowering so
Apply/Map/Runregressions stop failing in NIR. - Restore parser support for
[-started literals and remainingmatchstatement cases. - Re-run full suite and refresh the prioritized failure inventory.