Skip to content

dart analyze chokes on extra parentheses #61013

@jlahd

Description

@jlahd

When I run dart analyze for my project, the analyzer crashes. I was able to isolate the problem to the following snippet:

class Foo {
  const Foo(({required this.bar}));
  final bool bar;
}

which is, of course, invalid - there are additional parentheses in the constructor definition. If I comment this definition out (or fix the bug), the analyzer runs fine; if the extra parentheses are there, the analyzer crashes.

$ dart --version
Dart SDK version: 3.8.1 (stable) (Wed May 28 00:47:25 2025 -0700) on "linux_x64"
$ dart analyze
Analyzing emitest...                    
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: Null check operator used on a null value
#0      _EnclosingContext.fragmentReference (package:analyzer/src/summary2/element_builder.dart:1931:30)
#1      _EnclosingContext._addReference (package:analyzer/src/summary2/element_builder.dart:2122:24)
#2      _EnclosingContext.addParameter (package:analyzer/src/summary2/element_builder.dart:2075:14)
#3      ElementBuilder.visitFieldFormalParameter (package:analyzer/src/summary2/element_builder.dart:723:25)
#4      FieldFormalParameterImpl.accept (package:analyzer/src/dart/ast/ast.dart:7409:15)
#5      ElementBuilder.visitDefaultFormalParameter (package:analyzer/src/summary2/element_builder.dart:279:20)
#6      DefaultFormalParameterImpl.accept (package:analyzer/src/dart/ast/ast.dart:5244:15)
#7      NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:13232:20)
#8      ElementBuilder.visitFormalParameterList (package:analyzer/src/summary2/element_builder.dart:768:21)
#9      FormalParameterListImpl.accept (package:analyzer/src/dart/ast/ast.dart:8028:50)
#10     ElementBuilder.visitFunctionTypedFormalParameter.<anonymous closure> (package:analyzer/src/summary2/element_builder.dart:1025:24)
#11     ElementBuilder._withEnclosing (package:analyzer/src/summary2/element_builder.dart:1823:8)
#12     ElementBuilder.visitFunctionTypedFormalParameter (package:analyzer/src/summary2/element_builder.dart:1023:5)
#13     FunctionTypedFormalParameterImpl.accept (package:analyzer/src/dart/ast/ast.dart:9224:15)
#14     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:13232:20)
#15     ElementBuilder.visitFormalParameterList (package:analyzer/src/summary2/element_builder.dart:768:21)
#16     FormalParameterListImpl.accept (package:analyzer/src/dart/ast/ast.dart:8028:50)
#17     ElementBuilder._buildExecutableElementChildren.<anonymous closure> (package:analyzer/src/summary2/element_builder.dart:1605:26)
#18     ElementBuilder._withEnclosing (package:analyzer/src/summary2/element_builder.dart:1823:8)
#19     ElementBuilder._buildExecutableElementChildren (package:analyzer/src/summary2/element_builder.dart:1603:5)
#20     ElementBuilder.visitConstructorDeclaration (package:analyzer/src/summary2/element_builder.dart:270:5)
#21     ConstructorDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:4343:15)
#22     ElementBuilder._visitPropertyFirst (package:analyzer/src/summary2/element_builder.dart:1813:14)
#23     ElementBuilder.visitClassDeclaration.<anonymous closure> (package:analyzer/src/summary2/element_builder.dart:151:7)
#24     ElementBuilder._withEnclosing (package:analyzer/src/summary2/element_builder.dart:1823:8)
#25     ElementBuilder.visitClassDeclaration (package:analyzer/src/summary2/element_builder.dart:149:5)
#26     ClassDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:2933:50)
#27     ElementBuilder._visitPropertyFirst (package:analyzer/src/summary2/element_builder.dart:1813:14)
#28     ElementBuilder.buildDeclarationElements (package:analyzer/src/summary2/element_builder.dart:47:5)
#29     LibraryBuilder.buildElements (package:analyzer/src/summary2/library_builder.dart:172:22)
#30     Linker._computeLibraryScopes (package:analyzer/src/summary2/link.dart:279:15)
#31     Linker._buildOutlines.<anonymous closure> (package:analyzer/src/summary2/link.dart:236:7)
#32     OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23)
#33     Linker._buildOutlines (package:analyzer/src/summary2/link.dart:235:17)
#34     Linker.link.<anonymous closure> (package:analyzer/src/summary2/link.dart:115:7)
#35     OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23)
#36     Linker.link (package:analyzer/src/summary2/link.dart:114:17)
#37     link (package:analyzer/src/summary2/link.dart:42:10)
#38     LibraryContext.load.loadBundle.<anonymous closure> (package:analyzer/src/dart/analysis/library_context.dart:263:22)
#39     OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23)
#40     LibraryContext.load.loadBundle (package:analyzer/src/dart/analysis/library_context.dart:262:42)
#41     LibraryContext.load.<anonymous closure> (package:analyzer/src/dart/analysis/library_context.dart:344:7)
#42     PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:38:15)
#43     LibraryContext.load (package:analyzer/src/dart/analysis/library_context.dart:343:12)
#44     AnalysisDriver._produceErrors.<anonymous closure>.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:2058:26)
#45     OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23)
#46     AnalysisDriver._produceErrors.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:2057:21)
#47     OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23)
#48     AnalysisDriver._produceErrors (package:analyzer/src/dart/analysis/driver.dart:2047:38)
#49     AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1267:7)
#50     AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2659:24)
<asynchronous suspension>


#0      LibraryContext._throwLibraryCycleLinkException (package:analyzer/src/dart/analysis/library_context.dart:419:5)
#1      LibraryContext.load.loadBundle (package:analyzer/src/dart/analysis/library_context.dart:294:11)
#2      LibraryContext.load.<anonymous closure> (package:analyzer/src/dart/analysis/library_context.dart:344:7)
#3      PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:38:15)
#4      LibraryContext.load (package:analyzer/src/dart/analysis/library_context.dart:343:12)
#5      AnalysisDriver._produceErrors.<anonymous closure>.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:2058:26)
#6      OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23)
#7      AnalysisDriver._produceErrors.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:2057:21)
#8      OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23)
#9      AnalysisDriver._produceErrors (package:analyzer/src/dart/analysis/driver.dart:2047:38)
#10     AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1267:7)
#11     AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2659:24)
<asynchronous suspension>

Unhandled exception:
Null check operator used on a null value
#0      _EnclosingContext.fragmentReference (package:analyzer/src/summary2/element_builder.dart:1931:30)
#1      _EnclosingContext._addReference (package:analyzer/src/summary2/element_builder.dart:2122:24)
#2      _EnclosingContext.addParameter (package:analyzer/src/summary2/element_builder.dart:2075:14)
#3      ElementBuilder.visitFieldFormalParameter (package:analyzer/src/summary2/element_builder.dart:723:25)
#4      FieldFormalParameterImpl.accept (package:analyzer/src/dart/ast/ast.dart:7409:15)
#5      ElementBuilder.visitDefaultFormalParameter (package:analyzer/src/summary2/element_builder.dart:279:20)
#6      DefaultFormalParameterImpl.accept (package:analyzer/src/dart/ast/ast.dart:5244:15)
#7      NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:13232:20)
#8      ElementBuilder.visitFormalParameterList (package:analyzer/src/summary2/element_builder.dart:768:21)
#9      FormalParameterListImpl.accept (package:analyzer/src/dart/ast/ast.dart:8028:50)
#10     ElementBuilder.visitFunctionTypedFormalParameter.<anonymous closure> (package:analyzer/src/summary2/element_builder.dart:1025:24)
#11     ElementBuilder._withEnclosing (package:analyzer/src/summary2/element_builder.dart:1823:8)
#12     ElementBuilder.visitFunctionTypedFormalParameter (package:analyzer/src/summary2/element_builder.dart:1023:5)
#13     FunctionTypedFormalParameterImpl.accept (package:analyzer/src/dart/ast/ast.dart:9224:15)
#14     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:13232:20)
#15     ElementBuilder.visitFormalParameterList (package:analyzer/src/summary2/element_builder.dart:768:21)
#16     FormalParameterListImpl.accept (package:analyzer/src/dart/ast/ast.dart:8028:50)
#17     ElementBuilder._buildExecutableElementChildren.<anonymous closure> (package:analyzer/src/summary2/element_builder.dart:1605:26)
#18     ElementBuilder._withEnclosing (package:analyzer/src/summary2/element_builder.dart:1823:8)
#19     ElementBuilder._buildExecutableElementChildren (package:analyzer/src/summary2/element_builder.dart:1603:5)
#20     ElementBuilder.visitConstructorDeclaration (package:analyzer/src/summary2/element_builder.dart:270:5)
#21     ConstructorDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:4343:15)
#22     ElementBuilder._visitPropertyFirst (package:analyzer/src/summary2/element_builder.dart:1813:14)
#23     ElementBuilder.visitClassDeclaration.<anonymous closure> (package:analyzer/src/summary2/element_builder.dart:151:7)
#24     ElementBuilder._withEnclosing (package:analyzer/src/summary2/element_builder.dart:1823:8)
#25     ElementBuilder.visitClassDeclaration (package:analyzer/src/summary2/element_builder.dart:149:5)
#26     ClassDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:2933:50)
#27     ElementBuilder._visitPropertyFirst (package:analyzer/src/summary2/element_builder.dart:1813:14)
#28     ElementBuilder.buildDeclarationElements (package:analyzer/src/summary2/element_builder.dart:47:5)
#29     LibraryBuilder.buildElements (package:analyzer/src/summary2/library_builder.dart:172:22)
#30     Linker._computeLibraryScopes (package:analyzer/src/summary2/link.dart:279:15)
#31     Linker._buildOutlines.<anonymous closure> (package:analyzer/src/summary2/link.dart:236:7)
#32     OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23)
#33     Linker._buildOutlines (package:analyzer/src/summary2/link.dart:235:17)
#34     Linker.link.<anonymous closure> (package:analyzer/src/summary2/link.dart:115:7)
#35     OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23)
#36     Linker.link (package:analyzer/src/summary2/link.dart:114:17)
#37     link (package:analyzer/src/summary2/link.dart:42:10)
#38     LibraryContext.load.loadBundle.<anonymous closure> (package:analyzer/src/dart/analysis/library_context.dart:263:22)
#39     OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23)
#40     LibraryContext.load.loadBundle (package:analyzer/src/dart/analysis/library_context.dart:262:42)
#41     LibraryContext.load.<anonymous closure> (package:analyzer/src/dart/analysis/library_context.dart:344:7)
#42     PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:38:15)
#43     LibraryContext.load (package:analyzer/src/dart/analysis/library_context.dart:343:12)
#44     AnalysisDriver._produceErrors.<anonymous closure>.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:2058:26)
#45     OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23)
#46     AnalysisDriver._produceErrors.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:2057:21)
#47     OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23)
#48     AnalysisDriver._produceErrors (package:analyzer/src/dart/analysis/driver.dart:2047:38)
#49     AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1267:7)
#50     AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2659:24)
<asynchronous suspension>


#0      LibraryContext._throwLibraryCycleLinkException (package:analyzer/src/dart/analysis/library_context.dart:419:5)
#1      LibraryContext.load.loadBundle (package:analyzer/src/dart/analysis/library_context.dart:294:11)
#2      LibraryContext.load.<anonymous closure> (package:analyzer/src/dart/analysis/library_context.dart:344:7)
#3      PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:38:15)
#4      LibraryContext.load (package:analyzer/src/dart/analysis/library_context.dart:343:12)
#5      AnalysisDriver._produceErrors.<anonymous closure>.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:2058:26)
#6      OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23)
#7      AnalysisDriver._produceErrors.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:2057:21)
#8      OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23)
#9      AnalysisDriver._produceErrors (package:analyzer/src/dart/analysis/driver.dart:2047:38)
#10     AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1267:7)
#11     AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2659:24)
<asynchronous suspension>
Bad state: The analysis server crashed unexpectedly

Metadata

Metadata

Assignees

Labels

area-dart-modelFor issues related to conformance to the language spec in the parser, compilers or the CLI analyzer.model-crashesCrashes in the analyzer or CFE

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions