Skip to content

[dart2js] crash in ListFactorySpecializer #52403

Description

@fredrik-smedberg

Apple M1
macOS Ventura 13.3.1 (a) (22E772610a)
Dart SDK version: 3.0.0 (stable) (Thu May 4 01:11:00 2023 -0700) on "macos_arm64"

flutter --version
Flutter 3.10.0 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 84a1e904f4 (6 dagar sedan) • 2023-05-09 07:41:44 -0700
Engine • revision d44b5a94c9
Tools • Dart 3.0.0 • DevTools 2.23.1

Error output

Target dart2js failed: Exception: .dart_tool/flutter_build/95c3e2b9852183996d6553a754760307/main.dart:
Internal Error: The compiler crashed when compiling this element.

The compiler is broken.

When compiling the above element, the compiler crashed. It is not
possible to tell if this is caused by a problem in your program or
not. Regardless, the compiler should not crash.

The Dart team would greatly appreciate if you would take a moment to
report this problem at http://dartbug.com/new.

Please include the following information:

* the name and version of your operating system,

* the Dart SDK build number (3.0.0), and

* the entire message you see here (including the full stack trace
  below as well as the source location above).

The compiler crashed: Crash when compiling:
type 'Null' is not a subtype of type 'FunctionType' in type cast

#0      CloneVisitorNotMembers.visitInstanceGetterInvocation (package:kernel/clone.dart:834:60)
#1      InstanceGetterInvocation.accept (package:kernel/ast.dart:6302:44)
#2      CloneVisitorNotMembers.clone (package:kernel/clone.dart:116:34)
#3      CloneVisitorNotMembers.visitLet (package:kernel/clone.dart:426:33)
#4      Let.accept (package:kernel/ast.dart:9277:44)
#5      CloneVisitorNotMembers.cloneOptional (package:kernel/clone.dart:128:29)
#6      CloneVisitorNotMembers.visitReturnStatement (package:kernel/clone.dart:548:32)
#7      ListGenerateLoopBodyInliner.visitReturnStatement (package:compiler/src/kernel/transformations/list_factory_specializer.dart:308:48)
#8      ReturnStatement.accept (package:kernel/ast.dart:10786:43)
#9      CloneVisitorNotMembers.cloneOptional (package:kernel/clone.dart:128:29)
#10     CloneVisitorNotMembers.cloneFunctionNodeBody (package:kernel/clone.dart:632:14)
#11     CloneVisitorNotMembers.visitFunctionNode (package:kernel/clone.dart:648:29)
#12     ListGenerateLoopBodyInliner.visitFunctionNode (package:compiler/src/kernel/transformations/list_factory_specializer.dart:353:26)
#13     FunctionNode.accept (package:kernel/ast.dart:4198:38)
#14     CloneVisitorNotMembers.clone (package:kernel/clone.dart:116:34)
#15     CloneVisitorNotMembers.visitFunctionExpression (package:kernel/clone.dart:389:35)
#16     FunctionExpression.accept (package:kernel/ast.dart:9166:44)
#17     CloneVisitorNotMembers.clone (package:kernel/clone.dart:116:34)
#18     CloneVisitorNotMembers.visitConditionalExpression (package:kernel/clone.dart:263:9)
#19     ConditionalExpression.accept (package:kernel/ast.dart:7420:44)
#20     CloneVisitorNotMembers.clone (package:kernel/clone.dart:116:34)
#21     CloneVisitorNotMembers.visitNamedExpression (package:kernel/clone.dart:669:43)
#22     NamedExpression.accept (package:kernel/ast.dart:5821:38)
#23     CloneVisitorNotMembers.clone (package:kernel/clone.dart:116:34)
#24     MappedListIterable.elementAt (dart:_internal/iterable.dart:415:31)
#25     ListIterator.moveNext (dart:_internal/iterable.dart:344:26)
#26     new _GrowableList._ofEfficientLengthIterable (dart:core-patch/growable_array.dart:189:27)
#27     new _GrowableList.of (dart:core-patch/growable_array.dart:150:28)
#28     new List.of (dart:core-patch/array_patch.dart:47:28)
#29     ListIterable.toList (dart:_internal/iterable.dart:214:7)
#30     CloneVisitorNotMembers.visitArguments (package:kernel/clone.dart:664:38)
#31     Arguments.accept (package:kernel/ast.dart:5746:38)
#32     CloneVisitorNotMembers.clone (package:kernel/clone.dart:116:34)
#33     CloneVisitorNotMembers.visitConstructorInvocation (package:kernel/clone.dart:240:31)
#34     ConstructorInvocation.accept (package:kernel/ast.dart:7119:44)
#35     CloneVisitorNotMembers.clone (package:kernel/clone.dart:116:34)
#36     CloneVisitorNotMembers.visitNamedExpression (package:kernel/clone.dart:669:43)
#37     NamedExpression.accept (package:kernel/ast.dart:5821:38)
#38     CloneVisitorNotMembers.clone (package:kernel/clone.dart:116:34)
#39     MappedListIterable.elementAt (dart:_internal/iterable.dart:415:31)
#40     ListIterator.moveNext (dart:_internal/iterable.dart:344:26)
#41     new _GrowableList._ofEfficientLengthIterable (dart:core-patch/growable_array.dart:189:27)
#42     new _GrowableList.of (dart:core-patch/growable_array.dart:150:28)
#43     new List.of (dart:core-patch/array_patch.dart:47:28)
#44     ListIterable.toList (dart:_internal/iterable.dart:214:7)
#45     CloneVisitorNotMembers.visitArguments (package:kernel/clone.dart:664:38)
#46     Arguments.accept (package:kernel/ast.dart:5746:38)
#47     CloneVisitorNotMembers.clone (package:kernel/clone.dart:116:34)
#48     CloneVisitorNotMembers.visitConstructorInvocation (package:kernel/clone.dart:240:31)
#49     ConstructorInvocation.accept (package:kernel/ast.dart:7119:44)
#50     CloneVisitorNotMembers.clone (package:kernel/clone.dart:116:34)
#51     ListGenerateLoopBodyInliner.visitReturnStatement (package:compiler/src/kernel/transformations/list_factory_specializer.dart:326:56)
#52     ReturnStatement.accept (package:kernel/ast.dart:10786:43)
#53     CloneVisitorNotMembers.clone (package:kernel/clone.dart:116:34)
#54     CloneVisitorNotMembers.cloneInContext (package:kernel/clone.dart:139:29)
#55     ListGenerateLoopBodyInliner.run (package:compiler/src/kernel/transformations/list_factory_specializer.dart:301:22)
#56     ListFactorySpecializer._loopBody (package:compiler/src/kernel/transformations/list_factory_specializer.dart:182:20)
#57     ListFactorySpecializer.transformListGenerateFactory (package:compiler/src/kernel/transformations/list_factory_specializer.dart:161:7)
#58     FactorySpecializer.transformStaticInvocation (package:compiler/src/kernel/transformations/factory_specializer.dart:31:25)
#59     _Lowering.visitStaticInvocation (package:compiler/src/kernel/transformations/lowering.dart:57:31)
#60     StaticInvocation.accept (package:kernel/ast.dart:7029:44)
#61     Transformer.transform (package:kernel/visitor.dart:1801:21)
#62     Transformer.transformList (package:kernel/visitor.dart:1836:18)
#63     Arguments.transformChildren (package:kernel/ast.dart:5761:7)
#64     Transformer.defaultTreeNode (package:kernel/visitor.dart:1858:10)
#65     TreeVisitor.visitArguments (package:kernel/visitor.dart:520:39)
#66     Arguments.accept (package:kernel/ast.dart:5746:38)
#67     Transformer.transform (package:kernel/visitor.dart:1801:21)
#68     InstanceInvocation.transformChildren (package:kernel/ast.dart:6152:21)
#69     Transformer.defaultTreeNode (package:kernel/visitor.dart:1858:10)
#70     TreeVisitor.defaultExpression (package:kernel/visitor.dart:229:43)
#71     TreeVisitor.visitInstanceInvocation (package:kernel/visitor.dart:274:57)
#72     InstanceInvocation.accept (package:kernel/ast.dart:6128:44)
#73     Transformer.transform (package:kernel/visitor.dart:1801:21)
#74     InstanceInvocation.transformChildren (package:kernel/ast.dart:6147:20)
#75     Transformer.defaultTreeNode (package:kernel/visitor.dart:1858:10)
#76     TreeVisitor.defaultExpression (package:kernel/visitor.dart:229:43)
#77     TreeVisitor.visitInstanceInvocation (package:kernel/visitor.dart:274:57)
#78     InstanceInvocation.accept (package:kernel/ast.dart:6128:44)
#79     Transformer.transform (package:kernel/visitor.dart:1801:21)
#80     NamedExpression.transformChildren (package:kernel/ast.dart:5836:17)
#81     Transformer.defaultTreeNode (package:kernel/visitor.dart:1858:10)
#82     TreeVisitor.visitNamedExpression (package:kernel/visitor.dart:521:51)
#83     NamedExpression.accept (package:kernel/ast.dart:5821:38)
#84     Transformer.transform (package:kernel/visitor.dart:1801:21)
#85     Transformer.transformList (package:kernel/visitor.dart:1836:18)
#86     Arguments.transformChildren (package:kernel/ast.dart:5762:7)
#87     Transformer.defaultTreeNode (package:kernel/visitor.dart:1858:10)
#88     TreeVisitor.visitArguments (package:kernel/visitor.dart:520:39)
#89     Arguments.accept (package:kernel/ast.dart:5746:38)
#90     Transformer.transform (package:kernel/visitor.dart:1801:21)
#91     ConstructorInvocation.transformChildren (package:kernel/ast.dart:7135:21)
#92     Transformer.defaultTreeNode (package:kernel/visitor.dart:1858:10)
#93     TreeVisitor.defaultExpression (package:kernel/visitor.dart:229:43)
#94     TreeVisitor.visitConstructorInvocation (package:kernel/visitor.dart:292:7)
#95     ConstructorInvocation.accept (package:kernel/ast.dart:7119:44)
#96     Transformer.transform (package:kernel/visitor.dart:1801:21)
#97     NamedExpression.transformChildren (package:kernel/ast.dart:5836:17)
#98     Transformer.defaultTreeNode (package:kernel/visitor.dart:1858:10)
#99     TreeVisitor.visitNamedExpression (package:kernel/visitor.dart:521:51)
#100    NamedExpression.accept (package:kernel/ast.dart:5821:38)
#101    Transformer.transform (package:kernel/visitor.dart:1801:21)
#102    Transformer.transformList (package:kernel/visitor.dart:1836:18)
#103    Arguments.transformChildren (package:kernel/ast.dart:5762:7)
#104    Transformer.defaultTreeNode (package:kernel/visitor.dart:1858:10)
#105    TreeVisitor.visitArguments (package:kernel/visitor.dart:520:39)
#106    Arguments.accept (package:kernel/ast.dart:5746:38)
#107    Transformer.transform (package:kernel/visitor.dart:1801:21)
#108    ConstructorInvocation.transformChildren (package:kernel/ast.dart:7135:21)
#109    Transformer.defaultTreeNode (package:kernel/visitor.dart:1858:10)
#110    TreeVisitor.defaultExpression (package:kernel/visitor.dart:229:43)
#111    TreeVisitor.visitConstructorInvocation (package:kernel/visitor.dart:292:7)
#112    ConstructorInvocation.accept (package:kernel/ast.dart:7119:44)
#113    Transformer.transform (package:kernel/visitor.dart:1801:21)
#114    NamedExpression.transformChildren (package:kernel/ast.dart:5836:17)
#115    Transformer.defaultTreeNode (package:kernel/visitor.dart:1858:10)
#116    TreeVisitor.visitNamedExpression (package:kernel/visitor.dart:521:51)
#117    NamedExpression.accept (package:kernel/ast.dart:5821:38)
#118    Transformer.transform (package:kernel/visitor.dart:1801:21)
#119    Transformer.transformList (package:kernel/visitor.dart:1836:18)
#120    Arguments.transformChildren (package:kernel/ast.dart:5762:7)
#121    Transformer.defaultTreeNode (package:kernel/visitor.dart:1858:10)
#122    TreeVisitor.visitArguments (package:kernel/visitor.dart:520:39)
#123    Arguments.accept (package:kernel/ast.dart:5746:38)
#124    Transformer.transform (package:kernel/visitor.dart:1801:21)
#125    ConstructorInvocation.transformChildren (package:kernel/ast.dart:7135:21)
#126    Transformer.defaultTreeNode (package:kernel/visitor.dart:1858:10)
#127    TreeVisitor.defaultExpression (package:kernel/visitor.dart:229:43)
#128    TreeVisitor.visitConstructorInvocation (package:kernel/visitor.dart:292:7)
#129    ConstructorInvocation.accept (package:kernel/ast.dart:7119:44)
#130    Transformer.transform (package:kernel/visitor.dart:1801:21)
#131    ReturnStatement.transformChildren (package:kernel/ast.dart:10800:22)
#132    _Lowering.visitReturnStatement (package:compiler/src/kernel/transformations/lowering.dart:105:15)
#133    ReturnStatement.accept (package:kernel/ast.dart:10786:43)
#134    Transformer.transform (package:kernel/visitor.dart:1801:21)
#135    Transformer.transformList (package:kernel/visitor.dart:1836:18)
#136    Block.transformChildren (package:kernel/ast.dart:9783:7)
#137    Transformer.defaultTreeNode (package:kernel/visitor.dart:1858:10)
#138    TreeVisitor.defaultStatement (package:kernel/visitor.dart:421:41)
#139    TreeVisitor.visitBlock (package:kernel/visitor.dart:426:31)
#140    Block.accept (package:kernel/ast.dart:9771:43)
#141    Transformer.transform (package:kernel/visitor.dart:1801:21)
#142    FunctionNode.transformChildren (package:kernel/ast.dart:4224:16)
#143    _Lowering.visitFunctionNode (package:compiler/src/kernel/transformations/lowering.dart:64:10)
#144    FunctionNode.accept (package:kernel/ast.dart:4198:38)
#145    Transformer.transform (package:kernel/visitor.dart:1801:21)
#146    Procedure.transformChildren (package:kernel/ast.dart:3611:20)
#147    Transformer.defaultTreeNode (package:kernel/visitor.dart:1858:10)
#148    TreeVisitor.defaultMember (package:kernel/visitor.dart:477:35)
#149    _Lowering.defaultMember (package:compiler/src/kernel/transformations/lowering.dart:44:18)
#150    TreeVisitor.visitProcedure (package:kernel/visitor.dart:481:39)
#151    Procedure.accept (package:kernel/ast.dart:3590:40)
#152    Transformer.transform (package:kernel/visitor.dart:1801:21)
#153    Transformer.transformList (package:kernel/visitor.dart:1836:18)
#154    Class.transformChildren (package:kernel/ast.dart:1536:7)
#155    Transformer.defaultTreeNode (package:kernel/visitor.dart:1858:10)
#156    TreeVisitor.visitClass (package:kernel/visitor.dart:490:31)
#157    Class.accept (package:kernel/ast.dart:1481:38)
#158    Transformer.transform (package:kernel/visitor.dart:1801:21)
#159    Transformer.transformList (package:kernel/visitor.dart:1836:18)
#160    Library.transformChildren (package:kernel/ast.dart:611:7)
#161    _Lowering.visitLibrary (package:compiler/src/kernel/transformations/lowering.dart:49:10)
#162    List.forEach (dart:core-patch/growable_array.dart:416:8)
#163    transformLibraries (package:compiler/src/kernel/transformations/lowering.dart:22:13)
#164    Dart2jsTarget.performModularTransformationsOnLibraries (package:compiler/src/kernel/dart2js_target.dart:173:14)
#165    KernelTarget.runBuildTransformations (package:front_end/src/fasta/kernel/kernel_target.dart:1568:19)
#166    KernelTarget.buildComponent.<anonymous closure> (package:front_end/src/fasta/kernel/kernel_target.dart:638:7)
<asynchronous suspension>
#167    withCrashReporting (package:front_end/src/fasta/crash.dart:136:12)
<asynchronous suspension>
#168    _buildInternal (package:front_end/src/kernel_generator_impl.dart:207:19)
<asynchronous suspension>
#169    withCrashReporting (package:front_end/src/fasta/crash.dart:136:12)
<asynchronous suspension>
#170    compile.<anonymous closure> (package:front_end/src/api_unstable/dart2js.dart:201:37)
<asynchronous suspension>
#171    compile (package:front_end/src/api_unstable/dart2js.dart:199:36)
<asynchronous suspension>
#172    _loadFromSource (package:compiler/src/phase/load_kernel.dart:299:29)
<asynchronous suspension>
#173    run (package:compiler/src/phase/load_kernel.dart:400:36)
<asynchronous suspension>
#174    Compiler.loadKernel (package:compiler/src/compiler.dart:395:9)
<asynchronous suspension>
#175    Compiler.produceKernel (package:compiler/src/compiler.dart:402:36)
<asynchronous suspension>
#176    Compiler.runSequentialPhases (package:compiler/src/compiler.dart:743:20)
<asynchronous suspension>
#177    Compiler.runInternal.<anonymous closure> (package:compiler/src/compiler.dart:319:7)
<asynchronous suspension>
#178    Compiler.runInternal (package:compiler/src/compiler.dart:318:5)
<asynchronous suspension>
#179    Compiler.run.<anonymous closure> (package:compiler/src/compiler.dart:239:11)
<asynchronous suspension>
#180    main (package:compiler/src/dart2js.dart:1473:3)
<asynchronous suspension>



#0      Dart2JSTarget.build (package:flutter_tools/src/build_system/targets/web.dart:212:7)
<asynchronous suspension>
#1      _BuildInstance._invokeInternal (package:flutter_tools/src/build_system/build_system.dart:847:9)
<asynchronous suspension>
#2      Future.wait.<anonymous closure> (dart:async/future.dart:525:21)
<asynchronous suspension>
#3      _BuildInstance.invokeTarget (package:flutter_tools/src/build_system/build_system.dart:785:32)
<asynchronous suspension>
#4      Future.wait.<anonymous closure> (dart:async/future.dart:525:21)
<asynchronous suspension>
#5      _BuildInstance.invokeTarget (package:flutter_tools/src/build_system/build_system.dart:785:32)
<asynchronous suspension>
#6      FlutterBuildSystem.build (package:flutter_tools/src/build_system/build_system.dart:614:16)
<asynchronous suspension>
#7      WebBuilder.buildWeb (package:flutter_tools/src/web/compile.dart:81:34)
<asynchronous suspension>
#8      BuildWebCommand.runCommand (package:flutter_tools/src/commands/build_web.dart:191:5)
<asynchronous suspension>
#9      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1336:27)
<asynchronous suspension>
#10     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
#11     CommandRunner.runCommand (package:args/command_runner.dart:212:13)
<asynchronous suspension>
#12     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:296:9)
<asynchronous suspension>
#13     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
#14     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:244:5)
<asynchronous suspension>
#15     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:91:9)
<asynchronous suspension>
#16     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
#17     main (package:flutter_tools/executable.dart:91:3)
<asynchronous suspension>

Compiling lib/main.dart for the Web...                              9,0s
Exception: Failed to compile application for the Web.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1A high priority bug; for example, a single project is unusable or has many test failuresarea-web-jsIssues related to JavaScript support for Dart Web, including DDC, dart2js, and JS interop.dart2js-crashweb-dart2js

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions