[dart2js] Don't inline direct recursion

This avoids a bug in handling ir.Let bindings.

Change-Id: I0ccd932248a550a5017dfe565209e8ef62299ff3
Reviewed-on: https://dart-review.googlesource.com/c/91241
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
This commit is contained in:
Stephen Adams 2019-01-26 01:32:10 +00:00 committed by commit-bot@chromium.org
parent d0f92e8cc5
commit ece54f3c43

View file

@ -5044,7 +5044,8 @@ class KernelSsaGraphBuilder extends ir.Visitor
}
bool heuristicSayGoodToGo() {
// Don't inline recursively
// Don't inline recursively, directly or indirectly.
if (function == targetElement) return false;
if (_inliningStack.any((entry) => entry.function == function)) {
return false;
}