The return value of a closure would previously be merged
with the return value of its enclosing function.
Also rename returnValue => returnVariable for consistency
in the builder.
BUG=
R=kasperl@google.com
Review URL: https://chromereviews.googleplex.com/448917013 .
This should help reviewers see how a change in type propagation affects
the current output.
There are currently only 3 tests with gold files. We can add more tests
ongoing as more features are implemented.
The expected outputs contains a lot of wrong types because the backing
type propagation is not complete.
BUG=
R=kustermann@google.com
Review URL: https://chromereviews.googleplex.com/440487013 .
To make this more digestible, a lot of things are intentionally left
out from the implementation:
- Some AST nodes, like super calls and await
- Handling of externals
- Avoidance of redundant variables in the constraint system
The solver is currently field-based, which is also something I plan to
change.
Suggested reading order:
- constraints.dart
- solver.dart
- canonicalizer.dart
- builder.dart
- visualizer.dart
R=kasperl@google.com
Review URL: https://chromereviews.googleplex.com/442937013 .