Open
Description
After updating to latest Flutter stable (3.22.1) our app is no longer building.
Running on macOS 14.4.1.
The failing step happens when the script executes the const_finder
command during the icon tree shaking step.
Building with --no-tree-shake-icons
produces a perfectly running build (so it seems more a problem of the parser rather than the builder).
I reproduced the error by running the following command:
dart path/to/const_finder.dart.snapshot --kernel-file /path/to/app.dill --class-library-uri 'package:flutter/src/widgets/icon_data.dart' --class-name 'IconData' --annotation-class-name '_StaticIconProvider' --annotation-class-library-uri 'package:flutter/src/widgets/icon_data.dart'
the exception thrown in debug mode is:
Unhandled exception:
'package:kernel/binary/ast_from_binary.dart': Failed assertion: line 2024 pos 16: 'targetReference != null && typeArguments != null': is not true.
#0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:51:61)
#1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:40:5)
#2 BinaryBuilder.readFunctionNode (package:kernel/binary/ast_from_binary.dart:2024:16)
#3 BinaryBuilder.readProcedure (package:kernel/binary/ast_from_binary.dart:1884:29)
#4 BinaryBuilder._readProcedureList.<anonymous closure> (package:kernel/binary/ast_from_binary.dart:1353:14)
#5 new _GrowableList.generate (dart:core-patch/growable_array.dart:136:28)
#6 new List.generate (dart:core-patch/array_patch.dart:46:13)
#7 BinaryBuilder._readProcedureList (package:kernel/binary/ast_from_binary.dart:1351:32)
#8 BinaryBuilder.readClassPartialContent (package:kernel/binary/ast_from_binary.dart:1710:31)
#9 BinaryBuilder._setLazyLoadClass.<anonymous closure> (package:kernel/binary/ast_from_binary.dart:1738:7)
#10 Class.ensureLoaded (package:kernel/ast.dart:1235:23)
#11 Reference._tryLoadNode (package:kernel/canonical_name.dart:450:23)
#12 Reference.node (package:kernel/canonical_name.dart:428:21)
#13 Reference.asProcedure (package:kernel/canonical_name.dart:541:28)
#14 RedirectingFactoryTearOffConstant.target (package:kernel/ast.dart:14390:43)
#15 RedirectingFactoryTearOffConstant.visitChildren (package:kernel/ast.dart:14397:5)
#16 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#17 VisitorDefault.defaultConstant (package:kernel/visitor.dart:1527:39)
#18 _ConstVisitor.defaultConstant (package:kernel/const_finder.dart:104:13)
#19 _ConstVisitor.defaultConstantReference (package:kernel/const_finder.dart:110:5)
#20 ConstantReferenceVisitorDefaultMixin.visitRedirectingFactoryTearOffConstantReference (package:kernel/visitor.dart:1119:7)
#21 RedirectingFactoryTearOffConstant.acceptReference (package:kernel/ast.dart:14410:9)
#22 ConstantExpression.visitChildren (package:kernel/ast.dart:8711:14)
#23 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#24 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39)
#25 TreeVisitorDefault.defaultExpression (package:kernel/visitor.dart:618:43)
#26 ExpressionVisitorDefaultMixin.visitConstantExpression (package:kernel/visitor.dart:204:57)
#27 ConstantExpression.accept (package:kernel/ast.dart:8703:44)
#28 visitList (package:kernel/ast.dart:14913:14)
#29 Arguments.visitChildren (package:kernel/ast.dart:5428:5)
#30 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#31 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39)
#32 TreeVisitorDefaultMixin.visitArguments (package:kernel/visitor.dart:579:39)
#33 Arguments.accept (package:kernel/ast.dart:5420:38)
#34 StaticInvocation.visitChildren (package:kernel/ast.dart:6617:15)
#35 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#36 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39)
#37 TreeVisitorDefault.defaultExpression (package:kernel/visitor.dart:618:43)
#38 ExpressionVisitorDefaultMixin.visitStaticInvocation (package:kernel/visitor.dart:151:53)
#39 StaticInvocation.accept (package:kernel/ast.dart:6608:44)
#40 VariableDeclaration.visitChildren (package:kernel/ast.dart:10801:18)
#41 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#42 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39)
#43 TreeVisitorDefault.defaultStatement (package:kernel/visitor.dart:622:41)
#44 StatementVisitorDefaultMixin.visitVariableDeclaration (package:kernel/visitor.dart:386:7)
#45 VariableDeclaration.accept (package:kernel/ast.dart:10791:43)
#46 Let.visitChildren (package:kernel/ast.dart:8779:14)
#47 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#48 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39)
#49 TreeVisitorDefault.defaultExpression (package:kernel/visitor.dart:618:43)
#50 ExpressionVisitorDefaultMixin.visitLet (package:kernel/visitor.dart:216:27)
#51 Let.accept (package:kernel/ast.dart:8772:44)
#52 VariableSet.visitChildren (package:kernel/ast.dart:4287:11)
#53 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#54 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39)
#55 TreeVisitorDefault.defaultExpression (package:kernel/visitor.dart:618:43)
#56 ExpressionVisitorDefaultMixin.visitVariableSet (package:kernel/visitor.dart:99:43)
#57 VariableSet.accept (package:kernel/ast.dart:4279:44)
#58 ExpressionStatement.visitChildren (package:kernel/ast.dart:9202:16)
#59 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#60 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39)
#61 TreeVisitorDefault.defaultStatement (package:kernel/visitor.dart:622:41)
#62 StatementVisitorDefaultMixin.visitExpressionStatement (package:kernel/visitor.dart:343:7)
#63 ExpressionStatement.accept (package:kernel/ast.dart:9194:43)
#64 visitList (package:kernel/ast.dart:14913:14)
#65 Block.visitChildren (package:kernel/ast.dart:9254:5)
#66 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#67 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39)
#68 TreeVisitorDefault.defaultStatement (package:kernel/visitor.dart:622:41)
#69 StatementVisitorDefaultMixin.visitBlock (package:kernel/visitor.dart:345:31)
#70 Block.accept (package:kernel/ast.dart:9247:43)
#71 visitList (package:kernel/ast.dart:14913:14)
#72 Block.visitChildren (package:kernel/ast.dart:9254:5)
#73 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#74 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39)
#75 TreeVisitorDefault.defaultStatement (package:kernel/visitor.dart:622:41)
#76 StatementVisitorDefaultMixin.visitBlock (package:kernel/visitor.dart:345:31)
#77 Block.accept (package:kernel/ast.dart:9247:43)
#78 FunctionNode.visitChildren (package:kernel/ast.dart:3915:11)
#79 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#80 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39)
#81 TreeVisitorDefaultMixin.visitFunctionNode (package:kernel/visitor.dart:577:45)
#82 FunctionNode.accept (package:kernel/ast.dart:3898:38)
#83 FunctionExpression.visitChildren (package:kernel/ast.dart:8663:14)
#84 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#85 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39)
#86 TreeVisitorDefault.defaultExpression (package:kernel/visitor.dart:618:43)
#87 ExpressionVisitorDefaultMixin.visitFunctionExpression (package:kernel/visitor.dart:202:57)
#88 FunctionExpression.accept (package:kernel/ast.dart:8655:44)
#89 VariableDeclaration.visitChildren (package:kernel/ast.dart:10801:18)
#90 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#91 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39)
#92 TreeVisitorDefault.defaultStatement (package:kernel/visitor.dart:622:41)
#93 StatementVisitorDefaultMixin.visitVariableDeclaration (package:kernel/visitor.dart:386:7)
#94 VariableDeclaration.accept (package:kernel/ast.dart:10791:43)
#95 Let.visitChildren (package:kernel/ast.dart:8779:14)
#96 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#97 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39)
#98 TreeVisitorDefault.defaultExpression (package:kernel/visitor.dart:618:43)
#99 ExpressionVisitorDefaultMixin.visitLet (package:kernel/visitor.dart:216:27)
#100 Let.accept (package:kernel/ast.dart:8772:44)
#101 Let.visitChildren (package:kernel/ast.dart:8780:10)
#102 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#103 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39)
#104 TreeVisitorDefault.defaultExpression (package:kernel/visitor.dart:618:43)
#105 ExpressionVisitorDefaultMixin.visitLet (package:kernel/visitor.dart:216:27)
#106 Let.accept (package:kernel/ast.dart:8772:44)
#107 ReturnStatement.visitChildren (package:kernel/ast.dart:10214:17)
#108 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#109 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39)
#110 TreeVisitorDefault.defaultStatement (package:kernel/visitor.dart:622:41)
#111 StatementVisitorDefaultMixin.visitReturnStatement (package:kernel/visitor.dart:377:51)
#112 ReturnStatement.accept (package:kernel/ast.dart:10206:43)
#113 visitList (package:kernel/ast.dart:14913:14)
#114 Block.visitChildren (package:kernel/ast.dart:9254:5)
#115 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#116 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39)
#117 TreeVisitorDefault.defaultStatement (package:kernel/visitor.dart:622:41)
#118 StatementVisitorDefaultMixin.visitBlock (package:kernel/visitor.dart:345:31)
#119 Block.accept (package:kernel/ast.dart:9247:43)
#120 FunctionNode.visitChildren (package:kernel/ast.dart:3915:11)
#121 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#122 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39)
#123 TreeVisitorDefaultMixin.visitFunctionNode (package:kernel/visitor.dart:577:45)
#124 FunctionNode.accept (package:kernel/ast.dart:3898:38)
#125 Procedure.visitChildren (package:kernel/ast.dart:3268:14)
#126 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725:10)
#127 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39)
#128 TreeVisitorDefault.defaultMember (package:kernel/visitor.dart:626:35)
#129 MemberVisitorDefaultMixin.visitProcedure (package:kernel/visitor.dart:411:39)
#130 _ConstVisitor.visitProcedure (package:kernel/const_finder.dart:97:11)
#131 Procedure.accept (package:kernel/ast.dart:3255:40)
#132 visitList (package:kernel/ast.dart:14913:14)
#133 Library.visitChildren (package:kernel/ast.dart:599:5)
#134 ConstFinder.findInstances (package:kernel/const_finder.dart:208:15)
#135 main (file:///Volumes/External/cloud/engine/src/flutter/tools/const_finder/bin/main.dart:103:41)
#136 _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:295:33)
#137 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12)
It seems to fail while parsing a redirected const factory
constructor that is not strictly related to the goal the command is trying to achieve.
I can send you the app.dill
artifact that is producing this error in private, if you provide me a way to do so (file weights about 115MB).
Thanks