-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Description
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.