7a540d2f85
Change-Id: Ic12edd3e76ba1f8b9fb096c96e310e7253cc6ac6 Reviewed-on: https://dart-review.googlesource.com/14722 Commit-Queue: Bob Nystrom <rnystrom@google.com> Reviewed-by: Régis Crelier <regis@google.com>
23 lines
834 B
Dart
23 lines
834 B
Dart
// Copyright (c) 2016, 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 test verifying that the parser can handle type parameterization of
|
|
/// local function declarations, and declarations of function parameters.
|
|
|
|
library generic_local_functions_test;
|
|
|
|
import "package:expect/expect.dart";
|
|
|
|
// Declare a generic function parameter.
|
|
int f(Y g<X, Y>(Map<X, Y> arg, X x)) => g<int, int>(<int, int>{1: 42}, 1);
|
|
|
|
main() {
|
|
// Declare a generic local function
|
|
Y h<X, Y>(Map<X, Y> m, X x) => m[x];
|
|
// Pass a generic local function as an argument.
|
|
Expect.equals(f(h), 42);
|
|
// Pass a function expression as an argument.
|
|
Expect.equals(f(<X, Y>(Map<X, Y> m, X x) => m[x]), 42);
|
|
}
|