fix: replace as any casts in AST walkers with typed guards + add options to PredicateCall
logic-ast.ts: add optional options?: Record<string, unknown> to PredicateCall interface. Previously any predicate needing options (e.g., space, dimension, tolerance) smuggled them via (node as any) .options, bypassing the type system entirely. extraction.ts: replace all 18 (node as any).body/.left/.right etc. casts with proper type guard narrowing (isForAllFormula, isExistsFormula, isAndFormula, isOrFormula, isNotFormula, isImpliesFormula, isPredicateCall). Affected functions: collectPredicates, formulaNeedsCssLengthMetrics, usesLayoutSpace, computeRequiredFacts & nestDomAncestry, getSelectorsFromFormula. 595 SDK + 57 E2E tests pass.
This commit is contained in:
@@ -81,6 +81,7 @@ export interface PredicateCall extends AstNode {
|
||||
kind: 'predicate'
|
||||
predicate: string
|
||||
args: TermNode[]
|
||||
options?: Record<string, unknown>
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user