d3c3ac48a3
Change-Id: Ie3e3e11a727f7fbe3c8d7af17c84dedfbdfcdf3a Reviewed-on: https://dart-review.googlesource.com/44422 Reviewed-by: Sigmund Cherem <sigmund@google.com>
81 lines
1.8 KiB
Dart
81 lines
1.8 KiB
Dart
// Copyright (c) 2012, 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.
|
|
|
|
import "package:expect/expect.dart";
|
|
|
|
// simple test with no types in signature
|
|
class A1 {
|
|
call() => 42;
|
|
}
|
|
|
|
// same test, include return type
|
|
class A2 {
|
|
int call() => 35;
|
|
}
|
|
|
|
class B {
|
|
call() => 28;
|
|
}
|
|
|
|
// A call() operator can have any arity
|
|
class C {
|
|
call(arg) => 7 * arg;
|
|
}
|
|
|
|
// Test named arguments
|
|
class D {
|
|
call([arg = 6]) => 7 * arg;
|
|
}
|
|
|
|
// Non-trivial method body combination of positional and named.
|
|
class E {
|
|
String call(String str, {int count: 1}) {
|
|
StringBuffer buffer = new StringBuffer();
|
|
for (var i = 0; i < count; i++) {
|
|
buffer.write(str);
|
|
if (i < count - 1) {
|
|
buffer.write(":");
|
|
}
|
|
}
|
|
return buffer.toString();
|
|
}
|
|
}
|
|
|
|
main() {
|
|
var a1 = new A1();
|
|
Expect.equals(42, a1());
|
|
Expect.equals(42, a1.call());
|
|
|
|
var a2 = new A2();
|
|
Expect.equals(35, a2());
|
|
Expect.equals(35, a2.call());
|
|
|
|
var b = new B();
|
|
Expect.equals(28, b());
|
|
Expect.equals(28, b.call());
|
|
|
|
var c = new C();
|
|
Expect.equals(42, c(6));
|
|
Expect.equals(42, c.call(6));
|
|
|
|
var d = new D();
|
|
Expect.equals(42, d());
|
|
Expect.equals(7, d(1));
|
|
Expect.equals(14, d(2));
|
|
Expect.equals(42, d.call());
|
|
Expect.equals(7, d.call(1));
|
|
Expect.equals(14, d.call(2));
|
|
|
|
var e = new E();
|
|
Expect.equals("foo", e("foo"));
|
|
Expect.equals("foo:foo", e("foo", count: 2));
|
|
Expect.equals("foo:foo:foo", e("foo", count: 3));
|
|
Expect.equals("foo", e.call("foo"));
|
|
Expect.equals("foo:foo", e.call("foo", count: 2));
|
|
Expect.equals("foo:foo:foo", e.call("foo", count: 3));
|
|
|
|
Expect.isFalse(a1 is Function); //# 01: ok
|
|
Expect.isFalse(e is Function); //# 02: ok
|
|
}
|