// 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 ';']
 * @compile-error
 * @author kaigorodov
 */

f(var func) {
  return func();
}

main() {
  try {
    f(void func() =>);
  } catch (x) {}
}
