9.1 KiB
Independent actual-output acceptance test review
Reviewed eleven new tests in crates/oa-core/src/language/analysis_source/mixed/project/ordinary_index/rename/emission/acceptance/tests.rs, SHA256 64fb048f228487be0f86e06033836cdd420dd1ca3ae5b23939c1c47245cbc7a0, against selected contractb86c8dbc, ACCEPTANCE-ORACLE, WARNING-ORACLE and TEST-CHECKLIST. Relevant source baseline2941713; new code is locally pending. No compiler, parser, test binary or debugger executed by this reviewer.
Disposition: no concrete precompile evaluator blocker found in these bytes. Ready for parent formatting/compiler/runtime gates, with the scope qualifications below. This is not a compile guarantee or runtime acceptance.
Literal boundaries and predecessor provenance
Minimal entries17/bytes152 and151 are installed before original parsing and survive real parse/resolve/index/plan/emission into consuming verify. Pending bytes compare with independent NEXT before verify. Success compares complete one-file bundle, complete literal Project, empty warnings, final Slots(1,0,105), exact verification Usage81/19/1/0/0 and numeric0, and all policy fields. Negative pins main37..38, byte-limit message and line2column27. Original bytes78 are separately asserted and source/desired remain unchanged. There is no fabricated late entry16 control.
Warning entries18/bytes161 and160 likewise follow the actual predecessor path. The original is now the independently authored exact71-byte empty-name literal. Parent caught an earlier pre-execution draft offset deletion21..28 instead of content22..29; that draft defect is repaired before these reviewed bytes and is not a runtime failure. Original warning11..66 and returned warning11..69 are explicitly distinguished. Positive compares whole literal Project, exact complete warning including severity/object ID/field/related/message/path/line/column, final Slots(2,0,157), work74/19/1/0/0 and policy. Negative checks mapper full11..69, not the parser's one-byte transport. Byte caps are unchanged through emission; no final-only retention cap is invented.
The warning success checks its sole expected file's bytes rather than reconstructing the whole bundle assertion in that test. Minimal and rich/four-file tests separately check entire bundle identity, while the warning-specific test discriminates W retention and output diagnostic positions. This is adequate combined coverage, not an extra independent all-file warning fixture claim.
Equality and genuine ownership evidence
Equal-byte alias/name corruptions first parse and resolve the actual mutated pending bundle, proving they are admissible wrong models, then require the exact semantic mismatch0..0 from verify. Version corruption is separately a scanner refusal. Parent self-reference corruption first establishes grammar validity and then requires containment_cycle, distinguishing model rejection from equality rejection. All mutation is confined to private test access; no unchecked production constructor is introduced by these tests.
ActualE1→3 preserves195 output text bytes and derives actual arena3 from the freshly resolved output. It calls the same equal_target helper used by verify, verifies successful reservation/release restores the real ledger, then labels the4094-entry ledger injection under unchanged4096 policy. OldE1 would fit that state; actualE3 must refuse and leave it unchanged. This is a useful discriminating internal provenance test, not a genuine late-cap pipeline or a demonstration that root-variant comparison itself uses a frontier larger than1. Dropping that fault-injected resolver and checking actual verify mismatch preserves the normal-path evidence separately.
The accepted value escapes a lexical block that owns original input and desired; subsequent access compares model/source/warnings and custom policy. This materially checks owning lifetime at compilation, unlike a use before desired drops. All five Limits fields plus numeric policy and all seven ProjectLimits/model fields are compared with deliberately nondefault values.
Warning shape controls reject related locations and Error severity; destination controls distinguish all three subset components; checked arithmetic faults are labeled. They do not claim an impossible real final-onlyO+W threshold. Source review still owns proof of move-without-clone, full-ledger coexistence until actual drops, and complete pending guard authority; value comparisons alone cannot establish those properties.
Rich files, semantic equality and stack scope
Rich OA/SA cases use the previously independently authored complete byte strings and rich_model-derived independent desired alias/parameter changes. They cover global/scoped swaps, reordered/repeated call arguments, Unicode comments, whole-file CRLF transforms and all-file retained text totals. The four-file case adds cross-family swaps and an entirely untouched comment file; expected bytes are complete literals, not generated by the production edit iterator. Source/desired cloning in test setup is allowed and does not weaken the production no-clone requirement.
Signed-zero geometry compares entire returned Project and asserts actual returned positive-zero bits while desired has negative zero: this would detect substitution of desired for actual. Scalar/default and historical carriers use the established valid fixture and semantic PartialEq, with additional positive-zero checks for returned scalar/default values. Historical carrier equality is exercised but its returned bit pattern is not separately asserted; the geometry/scalar checks already discriminate actual-model retention.
Scoped128KiB tests prepare original authored owner, desired, target fault and pending emission outside each worker. Worker actually parses/resolves/verifies, checks success or mismatch and destroys accepted/failure state inside its scope. Deep128-node and wide129-node positives compare complete models and output bytes. Wide mismatch removes one target-only list member. Deep mismatch changes the project name and may short-circuit before Expr comparison; do not describe it as a deep expression mismatch walk. Deep success performs the real expression comparison. A separate real151-policy worker reaches the late grammar refusal. This is faithful scoped verification/drop coverage, not full predecessor setup on128KiB.
Zero-actualE fixtures with unbound actual bodies and large target-only expression variants test rejection without needing an actual Expr frontier. They deliberately run on the normal test thread and are not small-stack evidence. No test changes original small-stack allowances or claims additional process repetitions.
Remaining gate boundaries
All reviewed Result error extraction avoids the earlier EditDeclaration Debug unwrap_err problem. I found no obvious fixture grammar/privacy/type-shape issue by inspection; compiler remains authoritative. Subsequent formatting or edits require final hash rebinding. Runtime review must preserve the existing281-name disposition and16 failure bodies, format output and source/artifact identity, while separately recording any new compile/runtime failure. This suite does not establish public source8, GUI/history installation, repeated carried emission, universal memory bounds or untested equality payload extensions.
Final source freeze supplied by implementer: 4872141c036c16825f1c098bd7cf44709897e814; test SHA64fb048f228487be0f86e06033836cdd420dd1ca3ae5b23939c1c47245cbc7a0 unchanged. Eleven focused tests. Compiler/runtime gate disposition remains pending.
Initial runtime disproves two warning assumptions
Parent's initial4872141 focused attempt reports9 passed/2 failed: rich OA/SA and four-file tests incorrectly required empty warnings. My initial review missed the known unallocated-leaf and behavior-context warnings. The earlier ready disposition is superseded for those evaluator expectations, not erased. WARNING-FIX-ORACLE.md now derives both ordered complete diagnostics, locations and finalO+W from source/literal bytes independently of runtime diagnostic output. Await corrected test bytes and final gates; no production change or cap relaxation is justified by these failures.
Read back repaired test SHA256 e42fd54b157a47a69c8de2ea379b375b797a971b5bb604be572ea1f45b55b73d: only the two warning expectations and retained inventories change, with a literal helper returning both exact ordered records. Rich uses main338..403 line6 or351..416 line7, W227/entries2; four-file uses b25..90 line2, W221/entries2. Fields, messages, ID2, severityWarning, relatedempty and column1 match the independent oracle. Complete expected models/bytes, caps and production remain unchanged. Ready for parent's repair commit and rerun; no passing result inferred.
Final repaired source edf096cd33350865ecfc3c65ec266a6c0d3c4000, same e42fd54b test hash, now has independently reconciled focused11pass and full276pass/16inheritedfail,292 listed names, strictClippy0 and unchanged format1. RUNTIME-REVIEW.md records exact bindings and the separately documented target-path separator exception in the readback evaluator. Original4879/2 failure and this review's initial miss remain preserved. No tests or compilers were executed by this reviewer.