Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
mosabalrsaheed opened this issue Mar 6, 2025 · 1 comment
Labels
area-dart-model Use area-dart-model for issues related to packages analyzer, front_end, and kernel. model-const-eval Implementation of constant evaluation

Comments

@mosabalrsaheed
Copy link

mosabalrsaheed commented Mar 6, 2025

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.

@mosabalrsaheed mosabalrsaheed added the area-analyzer Use area-analyzer for Dart analyzer issues, including the analysis server and code completion. label Mar 6, 2025
@johnniwinther johnniwinther added area-dart-model Use area-dart-model for issues related to packages analyzer, front_end, and kernel. model-const-eval Implementation of constant evaluation labels Mar 7, 2025
@johnniwinther
Copy link
Member

cc @scheglov

@johnniwinther johnniwinther removed the area-analyzer Use area-analyzer for Dart analyzer issues, including the analysis server and code completion. label Mar 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-dart-model Use area-dart-model for issues related to packages analyzer, front_end, and kernel. model-const-eval Implementation of constant evaluation
Projects
None yet
Development

No branches or pull requests

2 participants