3f2801d63f
Similar to https://dart-review.googlesource.com/c/sdk/+/445540 this avoids compilation timeouts by avoiding recompiling the receiver in long chains of invocations. Guards all of the soundness checking behind a single generation check. This was already true for nested calls but not for chains of invocations. This also resolves a correctness issue where sub expressions of the receiver in chained calls would be evaluated multiple times at runtime. Change-Id: Iaf192a639e90d77995da55c7fa9c248e7bb93491 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/450183 Reviewed-by: Nate Biggs <natebiggs@google.com> Commit-Queue: Nicholas Shahan <nshahan@google.com>