// Copyright (c) 2014, 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 'dart:async'; import 'package:expect/expect.dart'; later(vodka) => new Future.value(vodka); manana(tequila) async => tequila; // Regression test for issue 21536. testNestedFunctions() async { var a = await later('Asterix').then((tonic) { return later(tonic); }); var o = await manana('Obelix').then(manana); Expect.equals("$a and $o", "Asterix and Obelix"); } addLater({a, b}) => new Future.value(a + b); // Regression test for issue 21480. testNamedArguments() async { var sum = await addLater(a: 5, b: 10); Expect.equals(sum, 15); sum = await addLater(b: 11, a: -11); Expect.equals(sum, 0); } testSideEffects() async { Future foo(int a1, int a2) { Expect.equals(10, a1); Expect.equals(11, a2); return new Future.value(); } int a = 10; await foo(a++, a++); Expect.equals(12, a); } main() async { testNestedFunctions(); testNamedArguments(); testSideEffects(); }