|  | // Copyright (c) 2019, 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'; | 
|  |  | 
|  | typedef F1 = int Function(int); | 
|  | typedef F2 = int Function(int); | 
|  | typedef F3 = int Function(double); | 
|  |  | 
|  | @pragma('dart2js:noInline') | 
|  | id(x) => x; | 
|  |  | 
|  | main() { | 
|  | var f1 = F1; | 
|  | var f2 = F2; | 
|  | var f3 = F3; | 
|  | Expect.isTrue(f1 == f2); | 
|  | var result12 = identical(f1, f2); | 
|  | Expect.isFalse(f1 == f3); | 
|  | Expect.isFalse(identical(f1, f3)); | 
|  | Expect.isFalse(f2 == f3); | 
|  | Expect.isFalse(identical(f2, f3)); | 
|  |  | 
|  | var g1 = id(F1); | 
|  | var g2 = id(F2); | 
|  | var g3 = id(F3); | 
|  | Expect.isTrue(g1 == g2); | 
|  | Expect.equals(result12, identical(g1, g2)); | 
|  | Expect.isFalse(g1 == g3); | 
|  | Expect.isFalse(identical(g1, g3)); | 
|  | Expect.isFalse(g2 == g3); | 
|  | Expect.isFalse(identical(g2, g3)); | 
|  | } |