| // Copyright (c) 2022, 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. |
| |
| // VMOptions=--optimization-counter-threshold=100 --no-use-osr --no-background-compilation |
| |
| class C< |
| T0, |
| T1, |
| T2, |
| T3, |
| T4, |
| T5, |
| T6, |
| T7, |
| T8, |
| T9, |
| T10, |
| T11, |
| T12, |
| T13, |
| T14, |
| T15, |
| T16, |
| T17, |
| T18, |
| T19, |
| T20, |
| T21, |
| T22, |
| T23, |
| T24, |
| T25, |
| T26, |
| T27, |
| T28, |
| T29, |
| T30, |
| T31, |
| T32, |
| T33, |
| T34, |
| T35, |
| T36, |
| T37, |
| T38, |
| T39, |
| T40, |
| T41, |
| T42, |
| T43, |
| T44, |
| T45, |
| T46, |
| T47, |
| T48, |
| T49, |
| T50, |
| T51, |
| T52, |
| T53, |
| T54, |
| T55, |
| T56, |
| T57, |
| T58, |
| T59, |
| T60, |
| T61, |
| T62, |
| T63, |
| T64, |
| T65, |
| T66, |
| T67, |
| T68, |
| T69, |
| T70, |
| T71, |
| T72, |
| T73, |
| T74, |
| T75, |
| T76, |
| T77, |
| T78, |
| T79, |
| T80, |
| T81, |
| T82, |
| T83, |
| T84, |
| T85, |
| T86, |
| T87, |
| T88, |
| T89, |
| T90, |
| T91, |
| T92, |
| T93, |
| T94, |
| T95, |
| T96, |
| T97, |
| T98, |
| T99, |
| T100, |
| T101, |
| T102, |
| T103, |
| T104, |
| T105, |
| T106, |
| T107, |
| T108, |
| T109, |
| T110, |
| T111, |
| T112, |
| T113, |
| T114, |
| T115, |
| T116, |
| T117, |
| T118, |
| T119, |
| T120, |
| T121, |
| T122, |
| T123, |
| T124, |
| T125, |
| T126, |
| T127, |
| T128, |
| T129, |
| T130, |
| T131, |
| T132, |
| T133, |
| T134, |
| T135, |
| T136, |
| T137, |
| T138, |
| T139, |
| T140, |
| T141, |
| T142, |
| T143, |
| T144, |
| T145, |
| T146, |
| T147, |
| T148, |
| T149, |
| T150, |
| T151, |
| T152, |
| T153, |
| T154, |
| T155, |
| T156, |
| T157, |
| T158, |
| T159, |
| T160, |
| T161, |
| T162, |
| T163, |
| T164, |
| T165, |
| T166, |
| T167, |
| T168, |
| T169, |
| T170, |
| T171, |
| T172, |
| T173, |
| T174, |
| T175, |
| T176, |
| T177, |
| T178, |
| T179, |
| T180, |
| T181, |
| T182, |
| T183, |
| T184, |
| T185, |
| T186, |
| T187, |
| T188, |
| T189, |
| T190, |
| T191, |
| T192, |
| T193, |
| T194, |
| T195, |
| T196, |
| T197, |
| T198, |
| T199, |
| T200, |
| T201, |
| T202, |
| T203, |
| T204, |
| T205, |
| T206, |
| T207, |
| T208, |
| T209, |
| T210, |
| T211, |
| T212, |
| T213, |
| T214, |
| T215, |
| T216, |
| T217, |
| T218, |
| T219, |
| T220, |
| T221, |
| T222, |
| T223, |
| T224, |
| T225, |
| T226, |
| T227, |
| T228, |
| T229, |
| T230, |
| T231, |
| T232, |
| T233, |
| T234, |
| T235, |
| T236, |
| T237, |
| T238, |
| T239, |
| T240, |
| T241, |
| T242, |
| T243, |
| T244, |
| T245, |
| T246, |
| T247, |
| T248, |
| T249, |
| T250, |
| T251, |
| T252, |
| T253, |
| T254, |
| T255, |
| T256> { |
| @pragma("vm:never-inline") |
| static create<T>() { |
| return new C< |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| double, |
| T>(); |
| } |
| |
| @pragma("vm:never-inline") |
| @pragma("vm:entry-point") // Stop TFA |
| @pragma("dart2js:noInline") |
| dynamic checkIs(dynamic x) => x is T256; |
| |
| @pragma("vm:never-inline") |
| @pragma("vm:entry-point") // Stop TFA |
| @pragma("dart2js:noInline") |
| dynamic checkAs(dynamic x) => x as T256; |
| |
| @pragma("vm:never-inline") |
| @pragma("vm:entry-point") // Stop TFA |
| @pragma("dart2js:noInline") |
| dynamic checkInstantiate() => new G<G<T256>>(); |
| } |
| |
| class G<T> {} |
| |
| main() { |
| for (var i = 0; i < 101; i++) { |
| var c1 = C.create<int>(); |
| if (c1.checkIs(42) != true) throw "Wrong is"; |
| if (c1.checkAs(42) != 42) throw "Wrong as"; |
| if (c1.checkInstantiate() is! G<G<int>>) throw "Wrong instantiate"; |
| |
| var c2 = C.create<double>(); |
| if (c2.checkIs(42.0) != true) throw "Wrong is"; |
| if (c2.checkAs(42.0) != 42.0) throw "Wrong as"; |
| if (c2.checkInstantiate() is! G<G<double>>) throw "Wrong instantiate"; |
| |
| var c3 = C.create<String>(); |
| if (c3.checkIs("42") != true) throw "Wrong is"; |
| if (c3.checkAs("42") != "42") throw "Wrong as"; |
| if (c3.checkInstantiate() is! G<G<String>>) throw "Wrong instantiate"; |
| } |
| } |