blob: c17fffd65899a13808709a602bf1a3c7551d5353 [file] [log] [blame]
// 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.
/// @assertion A function declaration statement declares a new local function.
/// localFunctionDeclaration:
/// functionSignature functionBody
/// ;
/// functionSignature:
/// metadata returnType? identifier formalParameterList
/// ;
/// returnType:
/// void |
/// type
/// ;
/// functionBody:
/// async? ‘=>’ expression ‘;’ |
/// (async | async* | sync*)? block
/// ;
/// block:
/// '{' statements '}'
/// ;
/// @description Checks that when a local function declared with the function
/// body of a form (1) `=> expession` it may have `async` before a function body,
/// (2) 'block` it may have async, async* and sync* a block.
/// @author ngl@unipro.ru
main() {
f0() async => 3;
f1() async {}
f2() async* {}
f3() sync* {};
}