dart-lang / sdk

The Dart SDK, including the VM, JS and Wasm compilers, analysis, core libraries, and more.
https://dart.dev
BSD 3-Clause "New" or "Revised" License
10.2k stars 1.57k forks source link

dart fix --apply throws an error #56570

Closed NonymousMorlock closed 1 month ago

NonymousMorlock commented 1 month ago
Internal error: Exception while using a AvoidRedundantArgumentValues to visit a FunctionExpressionInvocationImpl in NamedExpressionImpl in ArgumentListImpl in InstanceCreationExpressionImpl in NamedExpressionImpl in ArgumentListImpl in InstanceCreationExpressionImpl in ArgumentListImpl in MethodInvocationImpl in CascadeExpressionImpl in ExpressionStatementImpl in BlockImpl in BlockFunctionBodyImpl in MethodDeclarationImpl in ClassDeclarationImpl in CompilationUnitImpl
Bad state: [library: null][this: (DefaultParameterElementImpl) {double? fontSize}][enclosingElement: null][reference: null]
#0      ConstVariableElement.computeConstantValue (package:analyzer/src/dart/element/element.dart:1292:9)
#1      _Visitor.checkArgument (package:linter/src/rules/avoid_redundant_argument_values.dart:105:23)
#2      _Visitor.check (package:linter/src/rules/avoid_redundant_argument_values.dart:88:7)
#3      _Visitor.visitFunctionExpressionInvocation (package:linter/src/rules/avoid_redundant_argument_values.dart:126:5)
#4      FunctionExpressionInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:8378:15)
#5      LinterVisitor._runSubscriptions (package:analyzer/src/lint/linter_visitor.dart:1096:14)
#6      LinterVisitor.visitFunctionExpressionInvocation (package:analyzer/src/lint/linter_visitor.dart:446:5)
#7      FunctionExpressionInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:8378:15)
#8      NamedExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:12183:17)
#9      LinterVisitor.visitNamedExpression (package:analyzer/src/lint/linter_visitor.dart:663:10)
#10     NamedExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:12173:50)
#11     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:12583:20)
#12     ArgumentListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:498:16)
#13     LinterVisitor.visitArgumentList (package:analyzer/src/lint/linter_visitor.dart:45:10)
#14     ArgumentListImpl.accept (package:analyzer/src/dart/ast/ast.dart:494:50)
#15     InstanceCreationExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:10134:19)
#16     LinterVisitor.visitInstanceCreationExpression (package:analyzer/src/lint/linter_visitor.dart:537:10)
#17     InstanceCreationExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:10123:15)
#18     NamedExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:12183:17)
#19     LinterVisitor.visitNamedExpression (package:analyzer/src/lint/linter_visitor.dart:663:10)
#20     NamedExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:12173:50)
#21     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:12583:20)
#22     ArgumentListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:498:16)
#23     LinterVisitor.visitArgumentList (package:analyzer/src/lint/linter_visitor.dart:45:10)
#24     ArgumentListImpl.accept (package:analyzer/src/dart/ast/ast.dart:494:50)
#25     InstanceCreationExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:10134:19)
#26     LinterVisitor.visitInstanceCreationExpression (package:analyzer/src/lint/linter_visitor.dart:537:10)
#27     InstanceCreationExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:10123:15)
#28     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:12583:20)
#29     ArgumentListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:498:16)
#30     LinterVisitor.visitArgumentList (package:analyzer/src/lint/linter_visitor.dart:45:10)
#31     ArgumentListImpl.accept (package:analyzer/src/dart/ast/ast.dart:494:50)
#32     MethodInvocationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:11882:19)
#33     LinterVisitor.visitMethodInvocation (package:analyzer/src/lint/linter_visitor.dart:645:10)
#34     MethodInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:11870:50)
#35     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:12583:20)
#36     CascadeExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:2316:22)
#37     LinterVisitor.visitCascadeExpression (package:analyzer/src/lint/linter_visitor.dart:135:10)
#38     CascadeExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:2306:50)
#39     ExpressionStatementImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:6190:17)
#40     LinterVisitor.visitExpressionStatement (package:analyzer/src/lint/linter_visitor.dart:327:10)
#41     ExpressionStatementImpl.accept (package:analyzer/src/dart/ast/ast.dart:6186:50)
#42     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:12583:20)
#43     BlockImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:2091:17)
#44     LinterVisitor.visitBlock (package:analyzer/src/lint/linter_visitor.dart:111:10)
#45     BlockImpl.accept (package:analyzer/src/dart/ast/ast.dart:2087:50)
#46     BlockFunctionBodyImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:2047:12)
#47     LinterVisitor.visitBlockFunctionBody (package:analyzer/src/lint/linter_visitor.dart:117:10)
#48     BlockFunctionBodyImpl.accept (package:analyzer/src/dart/ast/ast.dart:2039:50)
#49     MethodDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:11693:10)
#50     LinterVisitor.visitMethodDeclaration (package:analyzer/src/lint/linter_visitor.dart:639:10)
#51     MethodDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:11685:50)
#52     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:12583:20)
#53     ClassDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:2954:13)
#54     LinterVisitor.visitClassDeclaration (package:analyzer/src/lint/linter_visitor.dart:165:10)
#55     ClassDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:2944:50)
#56     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:12583:20)
#57     CompilationUnitImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:3614:21)
#58     LinterVisitor.visitCompilationUnit (package:analyzer/src/lint/linter_visitor.dart:189:10)
#59     CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:3607:50)
#60     LibraryAnalyzer._computeLints (package:analyzer/src/dart/analysis/library_analyzer.dart:398:12)
#61     LibraryAnalyzer._computeDiagnostics (package:analyzer/src/dart/analysis/library_analyzer.dart:323:7)
#62     LibraryAnalyzer.analyze (package:analyzer/src/dart/analysis/library_analyzer.dart:108:5)
#63     AnalysisDriver._analyzeFileImpl.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1394:11)
<asynchronous suspension>
#64     PerformanceLog.runAsync (package:analyzer/src/dart/analysis/performance_logger.dart:50:14)
<asynchronous suspension>
#65     AnalysisDriver._analyzeFile.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1308:9)
<asynchronous suspension>
#66     OperationPerformanceImpl.runAsync (package:analyzer/src/util/performance/operation_performance.dart:174:14)
<asynchronous suspension>
#67     AnalysisDriver._analyzeFile (package:analyzer/src/dart/analysis/driver.dart:1305:5)
<asynchronous suspension>
#68     AnalysisDriver._getErrors (package:analyzer/src/dart/analysis/driver.dart:1739:5)
<asynchronous suspension>
#69     AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1207:7)
<asynchronous suspension>
#70     AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2449:7)
<asynchronous suspension>

General Info

  - Dart 3.5.0 (stable) (Tue Jul 30 02:17:59 2024 -0700) on "linux_x64"
  - on linux / Linux 6.10.6-200.fc40.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Aug 19 14:09:30 UTC 2024
  - locale is en_US.UTF-8

Process info

| Memory |  CPU | Elapsed time | Command line                                                                               |
| -----: | ---: | -----------: | ------------------------------------------------------------------------------------------ |
|  67 MB | 0.4% |        03:03 | dart devtools --machine --dtd-uri=ws:<path>/bA2up9pIEDb5oV0L                               |
| 560 MB | 7.3% |        03:11 | dart language-server --client-id=Android-Studio --client-version=AI-241.18034.62 --protocol=analyzer |
|  82 MB | 0.4% |        03:03 | dart tooling-daemon --machine                                                              |
|  89 MB | 0.8% |        03:04 | flutter_tools.snapshot daemon  
dart-github-bot commented 1 month ago

Summary: The dart fix --apply command throws an internal error when attempting to apply the AvoidRedundantArgumentValues lint. The error occurs during analysis of a complex expression involving nested function calls and instance creations.

pq commented 1 month ago

Thanks for the report!

It looks like the root cause is the same as https://github.com/dart-lang/sdk/issues/47915 so we can pick it up there.

/fyi @scheglov