diff --git a/crates/oa-core/src/language/analysis_source/mixed/carried/entry_producer.rs b/crates/oa-core/src/language/analysis_source/mixed/carried/entry_producer.rs index 0eed3484..39ac9b01 100644 --- a/crates/oa-core/src/language/analysis_source/mixed/carried/entry_producer.rs +++ b/crates/oa-core/src/language/analysis_source/mixed/carried/entry_producer.rs @@ -229,7 +229,7 @@ fn nested_inventory_and_prepaid_projection_quota() { (29, "Source8 projection quota underflow."), (31, "Source8 projection quota leftover."), ] { - let error = language::edit_positions_from_tokens_with_producers( + let error = match language::edit_positions_from_tokens_with_producers( file.source, &file.ordinary, |at| lexeme(file.tokens[at]), @@ -237,8 +237,10 @@ fn nested_inventory_and_prepaid_projection_quota() { None, Some(quota), |_, _| Ok(()), - ) - .unwrap_err(); + ) { + Err(error) => error, + Ok(_) => panic!("injected projection quota must refuse"), + }; assert_eq!(error.message, message); } assert_eq!(syntax.budget.producer_entries(), Some(89)); diff --git a/harness/analysis-entry-producer-implementation-20260925.md b/harness/analysis-entry-producer-implementation-20260925.md index a99587ec..c41b6ee4 100644 --- a/harness/analysis-entry-producer-implementation-20260925.md +++ b/harness/analysis-entry-producer-implementation-20260925.md @@ -48,3 +48,9 @@ other work stacks, numeric/decoder internals and model/validator heap remain outside this retained metric. The extra shared projector wrapper and scalar Budget/State fields require measured parent stack checks; no heap indirection or larger stack is introduced. Final output acceptance remains a separate task. + +Initial a629ae01 focused compilation failed before any test ran: the quota +control's unwrap_err required Debug on its successful EditDeclaration vector. +The test now matches Err explicitly and panics on unexpected Ok, preserving +the same assertion without changing production types. Original compiler output +and source-bound receipt remain with parent gate evidence.