Skip to main content

evaluate

Function evaluate 

Source
pub fn evaluate(
    rule: &Rule,
    kind: CrossFileKind,
    index: &SymbolIndex,
    filter: &DeclFilter,
) -> Vec<Finding>
Expand description

Evaluate one cross-file rule against the project index.

single_impl_trait fires for a trait with exactly one declaration, exactly one concrete impl and no blanket impl. Zero impls stays silent: the trait is probably implemented outside this crate. Two or more is a legitimate abstraction. A blanket impl covers a whole family of types, so it is never an over-abstraction. A name declared twice is ambiguous and abstains.

The returned order follows HashMap iteration and is not stable; the caller (normalize_findings) sorts and dedups before the result is reported.