mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 14:13:09 +00:00
b681bfd8d2
For a method invocation temps might get allocated for both the receiver and argument(s) so that: A().foo(await null) becomes: Future<void> tmp0 ... tmp0 = A() // <- Type mismatch. yield ... tmp0 = tmp0.foo(:result) // <- Correct type. This happens because the liveness analysis finds that the (previously dynamic) temps can be reused. Unfortunately 121988 added typing information to these temps, which means they can't be simply reused in all cases. This fix makes the temps dynamic again (by removing the type) but adds unsafecasts to all VariableGets to propagate the know type. Bug: https://github.com/flutter/flutter/issues/51828 Change-Id: I89c82763e0d4f8b102bb55dec3b694d017345517 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138500 Reviewed-by: Johnni Winther <johnniwinther@google.com> Commit-Queue: Clement Skau <cskau@google.com> |
||
---|---|---|
.. | ||
unsorted | ||
kernel.status |