Skip to content

Analysis Server Crash When Running dart fix --apply (Error in avoid_redundant_argument_values) #60266

@mosabalrsaheed

Description

@mosabalrsaheed

Description:

When running dart fix --apply in my project, the Analysis Server crashes with an internal error. The error appears to be triggered by the analyzer when processing the lint rule avoid_redundant_argument_values. It fails while computing constant values for default parameters (for example, FontWeight? fontWeight and double? fontSize), leading to multiple stack traces.

Expected Behavior:

The command dart fix --apply should complete its analysis and apply any fixes without crashing the Analysis Server.

Actual Behavior:

The Analysis Server throws internal errors similar to the following output:

An unexpected error was encountered by the Analysis Server.
Please file an issue at https://github.com/dart-lang/sdk/issues/new/choose with the following details:

Internal error: Exception while using a AvoidRedundantArgumentValues to visit a FunctionExpressionInvocationImpl in NamedExpressionImpl in ArgumentListImpl in InstanceCreationExpressionImpl in VariableDeclarationImpl in VariableDeclarationListImpl in FieldDeclarationImpl in ClassDeclarationImpl in CompilationUnitImpl
Bad state: [library: null][this: (DefaultParameterElementImpl) {FontWeight? fontWeight}][enclosingElement: null][reference: null]
...



Internal error: Exception while using a AvoidRedundantArgumentValues to visit a FunctionExpressionInvocationImpl in NamedExpressionImpl in ArgumentListImpl in MethodInvocationImpl in VariableDeclarationImpl in VariableDeclarationListImpl in FieldDeclarationImpl in ClassDeclarationImpl in CompilationUnitImpl
Bad state: [library: null][this: (DefaultParameterElementImpl) {FontWeight? fontWeight}][enclosingElement: null][reference: null]
#0      ConstVariableElement.computeConstantValue (package:analyzer/src/dart/element/element.dart:1786:9)
#1      FormalParameterElementImpl.computeConstantValue (package:analyzer/src/dart/element/element.dart:4510:56)
#2      _Visitor.checkArgument (package:linter/src/rules/avoid_redundant_argument_values.dart:70:23)
#3      _Visitor.check (package:linter/src/rules/avoid_redundant_argument_values.dart:53:7)
#4      _Visitor.visitFunctionExpressionInvocation (package:linter/src/rules/avoid_redundant_argument_values.dart:91:5)
#5      FunctionExpressionInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:8615:15)
#6      AnalysisRuleVisitor._runSubscriptions (package:analyzer/src/lint/linter_visitor.dart:1101:14)
#7      AnalysisRuleVisitor.visitFunctionExpressionInvocation (package:analyzer/src/lint/linter_visitor.dart:437:5)
#8      FunctionExpressionInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:8615:15)
#9      NamedExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:12482:17)
#10     AnalysisRuleVisitor.visitNamedExpression (package:analyzer/src/lint/linter_visitor.dart:648:10)
#11     NamedExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:12472:50)
#12     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:12898:20)
#13     ArgumentListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:477:16)
#14     AnalysisRuleVisitor.visitArgumentList (package:analyzer/src/lint/linter_visitor.dart:42:10)
#15     ArgumentListImpl.accept (package:analyzer/src/dart/ast/ast.dart:473:50)
#16     MethodInvocationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:12151:19)
#17     AnalysisRuleVisitor.visitMethodInvocation (package:analyzer/src/lint/linter_visitor.dart:630:10)
#18     MethodInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:12139:50)
#19     VariableDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:18445:19)
#20     AnalysisRuleVisitor.visitVariableDeclaration (package:analyzer/src/lint/linter_visitor.dart:1019:10)
#21     VariableDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:18440:50)
#22     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:12898:20)
#23     VariableDeclarationListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:18569:16)
#24     AnalysisRuleVisitor.visitVariableDeclarationList (package:analyzer/src/lint/linter_visitor.dart:1025:10)
#25     VariableDeclarationListImpl.accept (package:analyzer/src/dart/ast/ast.dart:18563:15)
#26     FieldDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:6980:16)
#27     AnalysisRuleVisitor.visitFieldDeclaration (package:analyzer/src/lint/linter_visitor.dart:354:10)
#28     FieldDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:6975:50)
#29     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:12898:20)
#30     ClassDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:2901:13)
#31     AnalysisRuleVisitor.visitClassDeclaration (package:analyzer/src/lint/linter_visitor.dart:156:10)
#32     ClassDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:2891:50)
#33     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:12898:20)
#34     CompilationUnitImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:3564:21)
#35     AnalysisRuleVisitor.visitCompilationUnit (package:analyzer/src/lint/linter_visitor.dart:180:10)
#36     CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:3557:50)
#37     LibraryAnalyzer._computeLints (package:analyzer/src/dart/analysis/library_analyzer.dart:424:12)
#38     LibraryAnalyzer._computeDiagnostics (package:analyzer/src/dart/analysis/library_analyzer.dart:348:7)
#39     LibraryAnalyzer.analyze (package:analyzer/src/dart/analysis/library_analyzer.dart:120:5)
#40     AnalysisDriver._analyzeFileImpl.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1404:11)
<asynchronous suspension>
#41     PerformanceLog.runAsync (package:analyzer/src/dart/analysis/performance_logger.dart:50:14)
<asynchronous suspension>
#42     AnalysisDriver._analyzeFile.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1317:9)
<asynchronous suspension>
#43     OperationPerformanceImpl.runAsync (package:analyzer/src/util/performance/operation_performance.dart:174:14)
<asynchronous suspension>
#44     AnalysisDriver._analyzeFile (package:analyzer/src/dart/analysis/driver.dart:1314:5)
<asynchronous suspension>
#45     AnalysisDriver._getErrors (package:analyzer/src/dart/analysis/driver.dart:1709:5)
<asynchronous suspension>
#46     AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1227:7)
<asynchronous suspension>
#47     AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2438:7)
<asynchronous suspension>


null
An unexpected error was encountered by the Analysis Server.
Please file an issue at https://github.com/dart-lang/sdk/issues/new/choose with the following details:

Internal error: Exception while using a AvoidRedundantArgumentValues to visit a FunctionExpressionInvocationImpl in NamedExpressionImpl in ArgumentListImpl in MethodInvocationImpl in VariableDeclarationImpl in VariableDeclarationListImpl in FieldDeclarationImpl in ClassDeclarationImpl in CompilationUnitImpl
Bad state: [library: null][this: (DefaultParameterElementImpl) {FontWeight? fontWeight}][enclosingElement: null][reference: null]
#0      ConstVariableElement.computeConstantValue (package:analyzer/src/dart/element/element.dart:1786:9)
#1      FormalParameterElementImpl.computeConstantValue (package:analyzer/src/dart/element/element.dart:4510:56)
#2      _Visitor.checkArgument (package:linter/src/rules/avoid_redundant_argument_values.dart:70:23)
#3      _Visitor.check (package:linter/src/rules/avoid_redundant_argument_values.dart:53:7)
#4      _Visitor.visitFunctionExpressionInvocation (package:linter/src/rules/avoid_redundant_argument_values.dart:91:5)
#5      FunctionExpressionInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:8615:15)
#6      AnalysisRuleVisitor._runSubscriptions (package:analyzer/src/lint/linter_visitor.dart:1101:14)
#7      AnalysisRuleVisitor.visitFunctionExpressionInvocation (package:analyzer/src/lint/linter_visitor.dart:437:5)
#8      FunctionExpressionInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:8615:15)
#9      NamedExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:12482:17)
#10     AnalysisRuleVisitor.visitNamedExpression (package:analyzer/src/lint/linter_visitor.dart:648:10)
#11     NamedExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:12472:50)
#12     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:12898:20)
#13     ArgumentListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:477:16)
#14     AnalysisRuleVisitor.visitArgumentList (package:analyzer/src/lint/linter_visitor.dart:42:10)
#15     ArgumentListImpl.accept (package:analyzer/src/dart/ast/ast.dart:473:50)
#16     MethodInvocationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:12151:19)
#17     AnalysisRuleVisitor.visitMethodInvocation (package:analyzer/src/lint/linter_visitor.dart:630:10)
#18     MethodInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:12139:50)
#19     VariableDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:18445:19)
#20     AnalysisRuleVisitor.visitVariableDeclaration (package:analyzer/src/lint/linter_visitor.dart:1019:10)
#21     VariableDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:18440:50)
#22     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:12898:20)
#23     VariableDeclarationListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:18569:16)
#24     AnalysisRuleVisitor.visitVariableDeclarationList (package:analyzer/src/lint/linter_visitor.dart:1025:10)
#25     VariableDeclarationListImpl.accept (package:analyzer/src/dart/ast/ast.dart:18563:15)
#26     FieldDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:6980:16)
#27     AnalysisRuleVisitor.visitFieldDeclaration (package:analyzer/src/lint/linter_visitor.dart:354:10)
#28     FieldDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:6975:50)
#29     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:12898:20)
#30     ClassDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:2901:13)
#31     AnalysisRuleVisitor.visitClassDeclaration (package:analyzer/src/lint/linter_visitor.dart:156:10)
#32     ClassDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:2891:50)
#33     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:12898:20)
#34     CompilationUnitImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:3564:21)
#35     AnalysisRuleVisitor.visitCompilationUnit (package:analyzer/src/lint/linter_visitor.dart:180:10)
#36     CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:3557:50)
#37     LibraryAnalyzer._computeLints (package:analyzer/src/dart/analysis/library_analyzer.dart:424:12)
#38     LibraryAnalyzer._computeDiagnostics (package:analyzer/src/dart/analysis/library_analyzer.dart:348:7)
#39     LibraryAnalyzer.analyze (package:analyzer/src/dart/analysis/library_analyzer.dart:120:5)
#40     AnalysisDriver._analyzeFileImpl.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1404:11)
<asynchronous suspension>
#41     PerformanceLog.runAsync (package:analyzer/src/dart/analysis/performance_logger.dart:50:14)
<asynchronous suspension>
#42     AnalysisDriver._analyzeFile.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1317:9)
<asynchronous suspension>
#43     OperationPerformanceImpl.runAsync (package:analyzer/src/util/performance/operation_performance.dart:174:14)
<asynchronous suspension>
#44     AnalysisDriver._analyzeFile (package:analyzer/src/dart/analysis/driver.dart:1314:5)
<asynchronous suspension>
#45     AnalysisDriver._getErrors (package:analyzer/src/dart/analysis/driver.dart:1709:5)
<asynchronous suspension>
#46     AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1227:7)
<asynchronous suspension>
#47     AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2438:7)
<asynchronous suspension>


null

Additional errors regarding double? fontSize are also displayed.

Steps to Reproduce:

Open a project that contains code triggering the avoid_redundant_argument_values lint rule.
Run the command:
dart fix --apply Observe that the Analysis Server crashes and outputs multiple stack traces related to constant value computation.
Dart SDK Version:

Please replace the placeholder below with the output of dart --version from your terminal:


[dart --version]
Dart SDK version: 3.7.0 (stable) (Wed Feb 5 04:53:58 2025 -0800) on "macos_arm64"

Additional Information:

The error appears related to how the analyzer computes constant values for default parameters during lint processing.
If applicable, please mention if you are using Flutter (and include the Flutter version).
A minimal reproducible example may help; let me know if additional code samples are needed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-dart-modelFor issues related to conformance to the language spec in the parser, compilers or the CLI analyzer.model-const-evalImplementation of constant evaluation in analyzer/cfe

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions