Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

metadata_test crashes on precomp bots while being transformed #33086

Closed
chloestefantsova opened this issue May 9, 2018 · 2 comments
Closed
Assignees
Labels
area-vm Use area-vm for VM related issues, including code coverage, FFI, and the AOT and JIT backends.

Comments

@chloestefantsova
Copy link
Contributor

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>
...
@chloestefantsova chloestefantsova added the area-vm Use area-vm for VM related issues, including code coverage, FFI, and the AOT and JIT backends. label May 9, 2018
@chloestefantsova
Copy link
Contributor Author

@alexmarkov Could you please take a look?

@alexmarkov alexmarkov self-assigned this May 9, 2018
dart-bot pushed a commit that referenced this issue May 11, 2018
This is a follow-up to reverting constant evaluation in
46ab040.
The issue #33086 appears only
if constant evaluation is enabled.

Change-Id: I719f1fde3cf8a87150a815ce7a6cdab68e26eef9
Reviewed-on: https://dart-review.googlesource.com/54709
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
@alexmarkov
Copy link
Contributor

I believe this is fixed in aafc2a6

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-vm Use area-vm for VM related issues, including code coverage, FFI, and the AOT and JIT backends.
Projects
None yet
Development

No branches or pull requests

2 participants