Skip to main content

Module rust_constructor_detector

Module rust_constructor_detector 

Source
Expand description

AST-based constructor detection for Rust

This module enhances name-based constructor detection (Spec 117) with AST analysis to catch non-standard patterns.

§Detection Strategy

  1. Return Type: Function returns Self (or Result<Self>, Option<Self>)
  2. Body Pattern: Struct initialization or simple field assignments
  3. Complexity: Low cyclomatic (≤5), no loops, minimal branching

§Examples Caught

// Non-standard name (missed by name-based)
pub fn create_default_client() -> Self {
    Self { timeout: Duration::from_secs(30) }
}

// Builder method (different role)
pub fn set_timeout(mut self, timeout: Duration) -> Self {
    self.timeout = timeout;
    self
}

§Fallback

If AST unavailable (syntax errors, unsupported language):

  • Falls back to name-based detection (Spec 117)
  • Graceful degradation, no failures

Structs§

BodyPattern
ConstructorPatternVisitor
Visitor to detect constructor patterns in function body

Enums§

ConstructorReturnType

Functions§

analyze_function_body
Analyze function body for constructor patterns
extract_return_type
Extract return type from function signature using syn