From 08cc15d87295500d46e3bb16e5c14262e79bf48e Mon Sep 17 00:00:00 2001 From: Malte Ubl Date: Mon, 26 Oct 2026 07:07:50 -0700 Subject: [PATCH] Keep canonical degraded entries when a declaration retry rolls back Co-Authored-By: Claude Opus 5.5 --- packages/compiler/src/frontend/lowering/lowerer.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/compiler/src/frontend/lowering/lowerer.ts b/packages/compiler/src/frontend/lowering/lowerer.ts index 7d3b4d38d..eee126efb 100644 --- a/packages/compiler/src/frontend/lowering/lowerer.ts +++ b/packages/compiler/src/frontend/lowering/lowerer.ts @@ -13215,7 +13215,15 @@ export class Lowerer { const prior = this.degradedTypes.get(id); degraded.push({ id, - prior: prior === undefined ? undefined : { ...prior }, + prior: + prior === undefined + ? undefined + : { + lenient: prior.lenient, + code: prior.code, + reason: prior.reason, + ...(prior.canonical === true ? { canonical: true as const } : {}), + }, }); this.degradeType(type, diag.code, diag.message); const canonical = this.isCanonicalDegraded(id);