blob: 44031d8bb9fc1fa2b67fd500fd06c6db92dc0de5 [file] [log] [blame]
// 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();
}