From 928aad993db13afcc3161902fbaf5b5d32fce389 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sun, 25 Oct 2026 06:40:14 -0500 Subject: [PATCH] Add island packages to the judged set without a union spread The self-hosted compiler refuses spreading 'number[] | Set' into a string[] literal (SC1090), so pnpm build:native-compiler failed on loadFrontend. The judged set now starts from the library packages and adds each island package in a loop. --- packages/compiler/src/frontend/pipeline.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/compiler/src/frontend/pipeline.ts b/packages/compiler/src/frontend/pipeline.ts index 27b2d3d88..c4bd921c3 100644 --- a/packages/compiler/src/frontend/pipeline.ts +++ b/packages/compiler/src/frontend/pipeline.ts @@ -545,7 +545,9 @@ function loadFrontend( // The shared preflight/lowering refusal and dependency-closure checks remain. // Node island packages are judged already: they stay out of the // program, typed by their declarations (scope-B NI-4). - const judged = new Set([...libraryNpmStatic, ...(options.islandPackages ?? [])]); + const judged = new Set(libraryNpmStatic); + if (options.islandPackages !== undefined) + for (const name of options.islandPackages) judged.add(name); let requested: string[] = []; let reusableScout: ReturnType | null = null; let reusablePreflight: ScrDiagnostic[] | null = null;