| // 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. |
| |
| // @dart = 2.7 |
| |
| // Regression test. Crash occurred when trying to create a signature function |
| // for the non-live 'call' method on the live class 'A'. |
| |
| import 'package:expect/expect.dart'; |
| |
| class A<T> { |
| /// Weird signature to ensure it isn't match by any call selector. |
| call(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, {T t}) {} |
| } |
| |
| class B<T> { |
| @pragma('dart2js:noInline') |
| m(f) => f is Function(T); |
| } |
| |
| @pragma('dart2js:noInline') |
| create() => new B<A<int>>(); |
| |
| main() { |
| var o = create(); |
| new A(); |
| Expect.isTrue(o.m((A<int> i) => i)); |
| Expect.isFalse(o.m((A<String> i) => i)); |
| } |