Found by branch review of conveyor-engine before merge (the in-flight XMILE conveyor+queue implementation; specs docs/design/conveyors.md + docs/design/queues.md). Filed from a review report that exceeded its 15-finding cap.
Summary
ErrorCode::ConveyorTransitNotDtMultiple and ErrorCode::ConveyorLeakFractionsExceedOne are declared, rustdoc'd as Warning-level, Display-mapped, and libsimlin-mapped, but never constructed anywhere. The two Warning-level compile diagnostics that docs/design/conveyors.md sections 4.1 and 5.1 mandate are silently omitted: the belt is DT-quantized and leaks are content-clamped with no diagnostic.
Failure scenario
- A conveyor with
<len>1.3</len> under dt=0.25: slat_count(1.3, 0.25) = floor(5.2 + 0.5) = 5, giving an effective transit of 1.25 with no Warning -- though |5.2 - 5| = 0.2 > 1e-9, and conveyors.md:217-218 (section 4.1) requires "the compiler emits a Warning naming the conveyor and reporting the effective transit time".
- Two linear leak flows with constant fractions
0.7 and 0.5 (sum 1.2 > 1) silently under-leak the later flow via the step-2 content clamp with no Warning -- though conveyors.md:510 (section 5.1) requires "the compiler warns when constant leak fractions sum above 1".
Evidence
- declarations:
ConveyorTransitNotDtMultiple, (src/simlin-engine/src/common.rs:424) and ConveyorLeakFractionsExceedOne, (:427)
Display arms: common.rs:564-565; libsimlin mapping to Generic: src/libsimlin/src/lib.rs:287-288
- a repo-wide grep for each variant name returns only the declaration/Display/libsimlin sites and zero constructor sites, whereas siblings are constructed:
ConveyorTransitNotPositive at conveyor_compile.rs:1824, ConveyorLtmDegraded at db/diagnostic.rs:220
grep Warning src/simlin-engine/src/conveyor_compile.rs returns nothing (no Warning-severity emission in the conveyor compile path)
- runtime silently rounds:
pub fn slat_count(transit: f64, dt: f64) -> usize { let n = (transit / dt + 0.5).floor(); (conveyor.rs:30-31)
- spec error-code table (conveyors.md:925-926) lists both as
Warning
Suggested direction
Construct and emit both Warning diagnostics at the appropriate points in the conveyor compile path (slat-count quantization for 4.1, constant-leak-fraction sum for 5.1).
Found by branch review of
conveyor-enginebefore merge (the in-flight XMILE conveyor+queue implementation; specsdocs/design/conveyors.md+docs/design/queues.md). Filed from a review report that exceeded its 15-finding cap.Summary
ErrorCode::ConveyorTransitNotDtMultipleandErrorCode::ConveyorLeakFractionsExceedOneare declared, rustdoc'd as Warning-level,Display-mapped, and libsimlin-mapped, but never constructed anywhere. The two Warning-level compile diagnostics thatdocs/design/conveyors.mdsections 4.1 and 5.1 mandate are silently omitted: the belt is DT-quantized and leaks are content-clamped with no diagnostic.Failure scenario
<len>1.3</len>underdt=0.25:slat_count(1.3, 0.25) = floor(5.2 + 0.5) = 5, giving an effective transit of1.25with no Warning -- though|5.2 - 5| = 0.2 > 1e-9, and conveyors.md:217-218 (section 4.1) requires "the compiler emits a Warning naming the conveyor and reporting the effective transit time".0.7and0.5(sum1.2 > 1) silently under-leak the later flow via the step-2 content clamp with no Warning -- though conveyors.md:510 (section 5.1) requires "the compiler warns when constant leak fractions sum above 1".Evidence
ConveyorTransitNotDtMultiple,(src/simlin-engine/src/common.rs:424) andConveyorLeakFractionsExceedOne,(:427)Displayarms:common.rs:564-565; libsimlin mapping toGeneric:src/libsimlin/src/lib.rs:287-288ConveyorTransitNotPositiveatconveyor_compile.rs:1824,ConveyorLtmDegradedatdb/diagnostic.rs:220grep Warning src/simlin-engine/src/conveyor_compile.rsreturns nothing (no Warning-severity emission in the conveyor compile path)pub fn slat_count(transit: f64, dt: f64) -> usize { let n = (transit / dt + 0.5).floor();(conveyor.rs:30-31)WarningSuggested direction
Construct and emit both Warning diagnostics at the appropriate points in the conveyor compile path (slat-count quantization for 4.1, constant-leak-fraction sum for 5.1).