DirectInstantiationAnalyzer class

Analyzer that enforces dependency injection by flagging direct class instantiations.

This rule detects violations where classes are instantiated directly instead of using dependency injection. Exclusions are configured centrally via LinterConfig and include:

  • Classes from allowed packages (Flutter, Supabase, etc.)
  • Classes extending ignored base classes (Equatable, Module, Event, etc.)
  • Instantiations in specific contexts (const, factory, Module binds methods)
  • Safe value objects from whitelisted packages

Configuration should be provided at analyzer creation time. If no config is provided, defaults are used.

Inheritance

Constructors

DirectInstantiationAnalyzer({LinterConfig? config})

Properties

correctionMessage String
The suggested correction message for fixing a violation of this rule.
no setteroverride
hashCode int
The hash code for this object.
no setterinherited
problemMessage String
The main problem message shown when this rule is violated.
no setteroverride
ruleName String
The unique name of the lint rule implemented by this analyzer.
no setteroverride
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
severity String
The severity of the lint rule (e.g., 'ERROR', 'WARNING').
no setterinherited

Methods

analyze(CompilationUnit unit) List<LintIssue>
Analyze the given CompilationUnit and return a list of LintIssues.
override
analyzeWithResolver(CompilationUnit unit, dynamic resolver) List<LintIssue>
Analyze the given CompilationUnit with resolver context and return a list of LintIssues.
override
createIssue(AstNode node, {String? customMessage}) LintIssue
Helper to create a LintIssue from an AstNode with consistent formatting.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
shouldSkipFile(String path) bool
Returns true if the file at path should be skipped by this analyzer.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited