ffde1585da
When we detect that a temporary variable is being reused with a different type, we change the type of the temp to dynamic. This allows us to retain types for any non-reused temps. For any dynamic temps we still have type information available for use sites, which we can pass on via unsafeCast. One drawback of this approach is that we don't know ahead of time which temps are reused, and get turned into dynamic, so we have to unsafeCast all uses. This change is similar to what was done in: https://dart-review.googlesource.com/c/sdk/+/138500 TEST=Adds tests/language/vm/regress_flutter_85311_test.dart, updates relevant expect files. Bug: https://github.com/flutter/flutter/issues/85311 Change-Id: I821c5266327892d5c3fd5bae1bebba7f3fe3931b Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/205647 Commit-Queue: Clement Skau <cskau@google.com> Reviewed-by: Alexander Markov <alexmarkov@google.com>