// Copyright (c) 2011, 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 literal is an object that encapsulates an executable
/// unit of code.
/// functionExpression:
///   formalParameterList functionExpressionBody
/// ;
/// @description Checks that expression is necessary in the form
/// ['=>' expression ';']
/// @author kaigorodov


f(var func) {
  return func();
}

main() {
  try {
    f(void func() =>);
//                  ^
// [analyzer] unspecified
// [cfe] unspecified
  } catch (x) {}
}
