| // Copyright (c) 2021, 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. | 
 |  | 
 | import 'package:expect/expect.dart'; | 
 |  | 
 | class Foo { | 
 |   static int _next = 0; | 
 |  | 
 |   var field0 = ++_next; | 
 |   var field1 = ++_next; | 
 |   var field2 = ++_next; | 
 |   var field3 = ++_next; | 
 |   var field4 = ++_next; | 
 |   var field5 = ++_next; | 
 |   var field6 = ++_next; | 
 |   var field7 = ++_next; | 
 |   var field8 = ++_next; | 
 |   var field9 = ++_next; | 
 |   var field10 = ++_next; | 
 |   var field11 = ++_next; | 
 |   var field12 = ++_next; | 
 |   var field13 = ++_next; | 
 |   var field14 = ++_next; | 
 |   var field15 = ++_next; | 
 |   var field16 = ++_next; | 
 |   var field17 = ++_next; | 
 |   var field18 = ++_next; | 
 |   var field19 = ++_next; | 
 |   var field20 = ++_next; | 
 |   var field21 = ++_next; | 
 |   var field22 = ++_next; | 
 |   var field23 = ++_next; | 
 |   var field24 = ++_next; | 
 |   var field25 = ++_next; | 
 |   var field26 = ++_next; | 
 |   var field27 = ++_next; | 
 |   var field28 = ++_next; | 
 |   var field29 = ++_next; | 
 |   var field30 = ++_next; | 
 |   var field31 = ++_next; | 
 |  | 
 |   @pragma('vm:never-inline') | 
 |   String toString() => '$field0 $field1 $field2 $field3 $field4 $field5' | 
 |       '$field6 $field7 $field8 $field9 $field10 $field11' | 
 |       '$field12 $field13 $field14 $field15 $field16 $field17' | 
 |       '$field18 $field19 $field20 $field21 $field22 $field23' | 
 |       '$field24 $field25 $field26 $field27 $field28 $field29' | 
 |       '$field30 $field3'; | 
 | } | 
 |  | 
 | // The TypeArgumentVector will be at an offset that cannot be loaded from via | 
 | // normal addresing mode on ARM64. | 
 | class GenericFoo<T> extends Foo {} | 
 |  | 
 | final l = <dynamic>[GenericFoo<int>(), null, 1, 1.0]; | 
 |  | 
 | main() { | 
 |   final dynamic genericFoo = l[0]; | 
 |   Expect.isTrue(genericFoo.toString().length > 0); // Keep the fields alive. | 
 |   Expect.isTrue(identical(genericFoo as GenericFoo<int>, genericFoo)); | 
 | } |