mirror of
https://github.com/morluto/rea
synced 2026-10-27 22:45:19 -04:00
fix(javascript): preserve semantic gaps for unparseable sources
Successful worker transport can carry an explicit failed parser status with no semantic projection. Preserve that producer fact through the shared source-availability interpretation used by full and incremental graph construction, rather than dropping the source's semantic scope. Retain the module when capacity permits, per-family incomplete-module unknowns, and unknown omitted extents. Preserve existing operational failure reasons and limits without classifying syntax as resource loss. Document this coverage behavior. Validation: regression-first run had 3 expected failures; all 22 selected projection and public CLI source-selection/HTML cases passed after repair. No JavaScript target execution or live external provider was involved.
This commit is contained in:
@@ -25,7 +25,10 @@ import type {
|
||||
JavaScriptArtifactFile,
|
||||
JavaScriptArtifactFileSet,
|
||||
} from "../../domain/javascript/javascriptArtifactFiles.js";
|
||||
import { javaScriptArtifactTextExclusion } from "../../domain/javascript/javascriptArtifactFiles.js";
|
||||
import {
|
||||
javaScriptArtifactTextExclusion,
|
||||
javaScriptSemanticSourceExclusion,
|
||||
} from "../../domain/javascript/javascriptArtifactFiles.js";
|
||||
import type {
|
||||
AnalyzedJavaScriptArtifactFile,
|
||||
JavaScriptArtifactAnalysisFailure,
|
||||
@@ -189,11 +192,17 @@ export const analyzeAndAdoptJavaScriptArtifactFiles = async (
|
||||
},
|
||||
}),
|
||||
});
|
||||
if (failure !== undefined && facts.projection === null)
|
||||
const semanticUnavailableReason =
|
||||
failure?.reason ??
|
||||
javaScriptSemanticSourceExclusion(
|
||||
file,
|
||||
facts.javascript?.parse_status ?? null,
|
||||
);
|
||||
if (facts.projection === null && semanticUnavailableReason !== null)
|
||||
projection.recordUnavailableFile(
|
||||
file,
|
||||
failure.reason,
|
||||
failure.limits,
|
||||
semanticUnavailableReason,
|
||||
failure?.limits ?? null,
|
||||
error instanceof AnalysisResourceConstraintError ||
|
||||
error instanceof AnalysisTimeoutError
|
||||
? "resource-limit"
|
||||
|
||||
Reference in New Issue
Block a user