/** * Pass #32: use-after-close (CWE-672, category: reliability) * * Detects method calls on a resource variable that occur after the resource * has been closed (close/dispose/shutdown). Using a closed stream or * connection throws an IOException or similar, causing unexpected runtime * failures. * * Detection strategy: * 1. Find resource-opening calls (same patterns as resource-leak-pass). * 2. Find the FIRST close() call on the resource variable within the method. * 3. If a close is found, scan subsequent calls on the same receiver variable * that are NOT themselves close calls → use-after-close. * * Languages: Java, JavaScript, TypeScript, Python, Rust (skip Bash). */ import type { AnalysisPass, PassContext } from '../../graph/analysis-pass.js'; export interface UseAfterCloseResult { useAfterCloses: Array<{ openLine: number; closeLine: number; useLine: number; variable: string; }>; } export declare class UseAfterClosePass implements AnalysisPass { readonly name = "use-after-close"; readonly category: "reliability"; run(ctx: PassContext): UseAfterCloseResult; } //# sourceMappingURL=use-after-close-pass.d.ts.map