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
-
- Object
- BaseAnalyzer
- DirectInstantiationAnalyzer
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
CompilationUnitand return a list of LintIssues.override -
analyzeWithResolver(
CompilationUnit unit, dynamic resolver) → List< LintIssue> -
Analyze the given
CompilationUnitwith resolver context and return a list of LintIssues.override -
createIssue(
AstNode node, {String? customMessage}) → LintIssue -
Helper to create a LintIssue from an
AstNodewith 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
pathshould be skipped by this analyzer.inherited -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited