Skip to content

metadata_test crashes on precomp bots while being transformed #33086

@chloestefantsova

Description

@chloestefantsova

The type flow analysis (TFA) transformation rewrites const constructors to have bodies, which confuses other transformations.

This caused metadata_test to crash after the support for annotations on variable declarations has been enabled.

Running the test gives the following output:

$ python tools/test.py -m release -c dartkp -r dart_precompiled --strong language_2/metadata_test
...
stderr:
Constructor "const metadata_test.dart::Tag::•("loopvar")" has non-trivial body "ExpressionStatement".
#0      ConstantEvaluator.visitConstructorInvocation (package:kernel/transformations/constants.dart:503:7)
#1      ConstructorInvocation.accept (package:kernel/ast.dart:2862:36)
#2      ConstantEvaluator.evaluate (package:kernel/transformations/constants.dart:386:37)
#3      ConstantsTransformer.tryEvaluateWithContext (package:kernel/transformations/constants.dart:331:34)
#4      ConstantsTransformer.tryEvaluateAndTransformWithContext (package:kernel/transformations/constants.dart:324:31)
#5      ConstantsTransformer.visitConstructorInvocation (package:kernel/transformations/constants.dart:318:14)
#6      ConstructorInvocation.accept (package:kernel/ast.dart:2862:36)
#7      transformList (package:kernel/ast.dart:5684:27)
#8      VariableDeclaration.transformChildren (package:kernel/ast.dart:4460:5)
#9      Transformer.defaultTreeNode (package:kernel/visitor.dart:435:10)
#10     TreeVisitor.defaultStatement (package:kernel/visitor.dart:196:41)
#11     TreeVisitor.visitVariableDeclaration (package:kernel/visitor.dart:218:7)
#12     ConstantsTransformer.visitVariableDeclaration (package:kernel/transformations/constants.dart:251:42)
#13     VariableDeclaration.accept (package:kernel/ast.dart:4450:35)
#14     transformList (package:kernel/ast.dart:5684:27)
#15     ForStatement.transformChildren (package:kernel/ast.dart:3960:5)
#16     Transformer.defaultTreeNode (package:kernel/visitor.dart:435:10)
#17     TreeVisitor.defaultStatement (package:kernel/visitor.dart:196:41)
#18     TreeVisitor.visitForStatement (package:kernel/visitor.dart:207:45)
#19     ForStatement.accept (package:kernel/ast.dart:3949:35)
#20     transformList (package:kernel/ast.dart:5684:27)
#21     Block.transformChildren (package:kernel/ast.dart:3736:5)
#22     Transformer.defaultTreeNode (package:kernel/visitor.dart:435:10)
#23     TreeVisitor.defaultStatement (package:kernel/visitor.dart:196:41)
#24     TreeVisitor.visitBlock (package:kernel/visitor.dart:199:31)
#25     Block.accept (package:kernel/ast.dart:3728:35)
#26     ConstantsTransformer.visitFunctionNode (package:kernel/transformations/constants.dart:219:29)
#27     FunctionNode.accept (package:kernel/ast.dart:1959:30)
#28     ConstantsTransformer.visitProcedure.<anonymous closure> (package:kernel/transformations/constants.dart:150:37)
#29     ConstantEvaluator.withNewEnvironment (package:kernel/transformations/constants.dart:1082:16)
#30     ConstantsTransformer.visitProcedure (package:kernel/transformations/constants.dart:148:23)
#31     Procedure.accept (package:kernel/ast.dart:1621:32)
#32     transformList (package:kernel/ast.dart:5684:27)
#33     ConstantsTransformer.convertLibrary (package:kernel/transformations/constants.dart:109:5)
#34     transformLibraries (package:kernel/transformations/constants.dart:73:26)
#35     transformComponent (package:kernel/transformations/constants.dart:45:3)
#36     _performConstantEvaluation.<anonymous closure> (package:vm/kernel_front_end.dart:164:5)
<asynchronous suspension>
#37     CompilerContext.runInContext.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart:106:35)
#38     _rootRun (dart:async/zone.dart:1126)
#39     _CustomZone.run (dart:async/zone.dart:1023)
#40     runZoned (dart:async/zone.dart:1501)
#41     CompilerContext.runInContext (package:front_end/src/fasta/compiler_context.dart:106:14)
#42     CompilerContext.runWithOptions (package:front_end/src/fasta/compiler_context.dart:117:41)
#43     _performConstantEvaluation (package:vm/kernel_front_end.dart:150:25)
<asynchronous suspension>
#44     _runGlobalTransformations (package:vm/kernel_front_end.dart:125:13)
<asynchronous suspension>
#45     compileToKernel (package:vm/kernel_front_end.dart:70:11)
<asynchronous suspension>
...

Metadata

Metadata

Assignees

Labels

area-vmUse area-vm for VM related issues, including code coverage, and the AOT and JIT backends.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions