104b0deb5c
Before this CL the verifiers `visitInterfaceType` would start by calling `node.visitChildren(this);` and finish by calling `defaultDartType(node);` which calls `defaultNode(node)` which calls `node.visitChildren(this);`. This means that we call `visitChildren` twice which means exponential --- e.g. the added test with nested Lists (List mentioned 40 times) the innermost type would have been visited 549,755,813,888 times (that's 500+ billion times) (for a total of 1 trillion+ visits to types for that alone). Fixes https://github.com/dart-lang/sdk/issues/49780. PS: We don't want to run the formatter on that either. It doesn't exhibit bad speed-wise behavior but the output isn't exactly pretty. Change-Id: Ibb2f0d2669511934badb562cb96ee439bd44bebd Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256121 Reviewed-by: Johnni Winther <johnniwinther@google.com> Commit-Queue: Jens Johansen <jensj@google.com> Reviewed-by: Aske Simon Christensen <askesc@google.com>