blob: 77329b1cdc2079a5fca2761273942a8873529a66 [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 An unconditional ordinary method invocation i has the form
/// o.m(a1, ..., an, xn+1 : an+1, ..., xn+k : an+k).
/// where C denotes a class in the current scope.
/// @description Checks that static invocations (when o denotes a class in the
/// current scope), which matching the production, don't cause compile-time
/// errors.
/// @author msyabro
class C {
static f1() {}
static f2(p1, p2, p3) {}
static f3([name1, name2]) {}
static f4(p1, [name]) {}
static f5(p1, p2, {name1, name2}) {}
static f6(p1, p2, p3, p4, {name1, name2}) {}
}
main() {
C.f1();
C.f2(1 * 1, 1 / 1, 1 < 1);
C.f2(new Object(), true, false);
C.f3();
C.f3(1);
C.f3(1, "");
C.f4(1);
C.f4(1, 1);
C.f5(null, null);
C.f5(null, null, name2: null);
C.f5(null, null, name1: null, name2: null);
C.f6(() {}, () {return true;}, {}, [],
name1: (x) => x + 1, name2: (y) => (z) => z - y);
}