f35bb0379d
Previously the graph was constructed in such a way that :function_type_arguments_var was only initialized when we call the function with yield points for the first time. Which meant that on resumption we would the type arguments. Alternative to this fix would be to capture :function_type_arguments_var but that does not make sense: yield points only occur inside non-generic functions at the moment, which means that :function_type_arguments_var is cheaper then capturing it as it is just a load of a field from the closure object. Fixes https://github.com/dart-lang/sdk/issues/33025 Bug: 33025 Change-Id: I0543b64202511a6c48744d462e384cf8a79e903e Reviewed-on: https://dart-review.googlesource.com/53664 Commit-Queue: Vyacheslav Egorov <vegorov@google.com> Reviewed-by: Martin Kustermann <kustermann@google.com>
19 lines
471 B
Dart
19 lines
471 B
Dart
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
// Verify that VM correctly handles function type arguments across
|
|
// yield points.
|
|
|
|
import "package:expect/expect.dart";
|
|
|
|
void main() {
|
|
doStuff<String>();
|
|
}
|
|
|
|
doStuff<T>() async {
|
|
Expect.equals(String, T);
|
|
await null;
|
|
Expect.equals(String, T);
|
|
}
|