From fcdcedc8dace2510c00829ef1e42bb8a1eeb6819 Mon Sep 17 00:00:00 2001 From: Daniel from Labpics <63733699+lemone112@users.noreply.github.com> Date: Mon, 27 Jul 2026 04:34:44 +0300 Subject: [PATCH] core: make presentation error mapping exhaustive --- crates/labcolors-core/src/program_identity.rs | 6 +++--- crates/labcolors-core/src/program_session.rs | 14 ++++++++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/crates/labcolors-core/src/program_identity.rs b/crates/labcolors-core/src/program_identity.rs index 8e6b8b8e..7bfccc4a 100644 --- a/crates/labcolors-core/src/program_identity.rs +++ b/crates/labcolors-core/src/program_identity.rs @@ -329,9 +329,9 @@ where fn program_root_color() -> Result { let mut color = VertexColorV1::new(vertex_tag::PROGRAM); // Эти теги связывают адрес с версиями исполняемых законов: схемой Program, - // total-order selection, финальной перепроверкой, атомарным наблюдением и - // encoded Paint emission. Derived capability releases bind only the - // constraints that execute them. + // total-order selection, финальной перепроверкой, атомарным наблюдением, + // encoded Paint emission и modeled point presentation. Derived capability + // releases bind only the constraints that execute them. for release in [ release_tag::PROGRAM_SCHEMA_V3, release_tag::DECLARED_TOTAL_ORDER_V1, diff --git a/crates/labcolors-core/src/program_session.rs b/crates/labcolors-core/src/program_session.rs index 252ec193..b9199d5d 100644 --- a/crates/labcolors-core/src/program_session.rs +++ b/crates/labcolors-core/src/program_session.rs @@ -3184,7 +3184,12 @@ fn compile_point_presentations( PointPresentationPathErrorV1::ResourceExhausted => { ProgramCompileError::ResourceExhausted } - _ => ProgramCompileError::InternalInvariant, + PointPresentationPathErrorV1::MissingTarget + | PointPresentationPathErrorV1::TargetOutsideRootAncestry + | PointPresentationPathErrorV1::IncompatibleRoot + | PointPresentationPathErrorV1::InternalInvariant => { + ProgramCompileError::InternalInvariant + } })?; compiled_roots.push((root.id, compiled)); } @@ -3230,7 +3235,12 @@ fn compile_point_presentations( PointPresentationPathErrorV1::ResourceExhausted => { ProgramCompileError::ResourceExhausted } - _ => ProgramCompileError::InternalInvariant, + PointPresentationPathErrorV1::MissingRoot + | PointPresentationPathErrorV1::RootConsumedDownstream + | PointPresentationPathErrorV1::IncompatibleRoot + | PointPresentationPathErrorV1::InternalInvariant => { + ProgramCompileError::InternalInvariant + } })?; compiled.push(CompiledPointPresentationV1 { root: target.root,