/** * Pass: missing-override (#64) * * Detects Java methods that override a parent class method but lack the * @Override annotation. Without @Override the compiler cannot catch signature * mismatches introduced by a parent-class refactoring. * * Detection strategy: * 1. Build a map of class → method names from all types in the IR. * 2. Build a parent map: class name → direct parent class name (strip generics). * 3. For each class that has a parent in the same file, walk the inheritance * chain (max 10 hops, cycle guard) to collect all ancestor method names. * 4. For each non-constructor, non-private, non-static, non-abstract method * whose name appears in the ancestor set — if @Override is absent → finding. * * Language: Java only. * Dedup: at most one finding per class:method pair. */ import type { AnalysisPass, PassContext } from '../../graph/analysis-pass.js'; export interface MissingOverrideResult { findings: number; } export declare class MissingOverridePass implements AnalysisPass { readonly name = "missing-override"; readonly category: "maintainability"; run(ctx: PassContext): MissingOverrideResult; } //# sourceMappingURL=missing-override-pass.d.ts.map