blob: cfc5491888e06abe242d91ba1d64d2fa4adf96e2 [file] [log] [blame]
/*
* 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
* ;
* functionExpressionBody:
* '=>' expression
* | block
* ;
* @description Checks that various valid function literal invocation expressions
* don't produce compile-time errors.
* @author kaigorodov
* @reviewer rodionov
*/
abstract class I {}
class C implements I{}
typedef tf();
main() {
() {}();
(k) {return k;}(1);
(() => 1)();
((C x, y) => new C())(null, null);
((C p1, tf p2, [tf p3]) => null)(null, null);
((C p1, tf p2, {tf p3}) => null)(null, null);
(tf p1, tf p2, [tf p3]) => null();
try {
((tf p1, tf p2, [tf p3]) => null())(null, null); //null() is parsed as a closure invocation
} catch(x){}
}