blob: ff54ec7b070c247147d4ddb6b954880c792c83f2 [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* {};
}