70 lines
1.1 KiB
Dart
70 lines
1.1 KiB
Dart
// Copyright (c) 2015, 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.
|
|
|
|
library methods;
|
|
|
|
class A {
|
|
int x() => 42;
|
|
|
|
int y(int a) {
|
|
return a;
|
|
}
|
|
|
|
int z([num b]) => b;
|
|
|
|
int zz([int b = 0]) => b;
|
|
|
|
int w(int a, {num b}) {
|
|
return a + b;
|
|
}
|
|
|
|
int ww(int a, {int b: 0}) {
|
|
return a + b;
|
|
}
|
|
|
|
clashWithObjectProperty({constructor}) => constructor;
|
|
clashWithJsReservedName({function}) => function;
|
|
|
|
int get a => x();
|
|
|
|
void set b(int b) {}
|
|
|
|
int _c = 3;
|
|
|
|
int get c => _c;
|
|
|
|
void set c(int c) {
|
|
_c = c;
|
|
}
|
|
}
|
|
|
|
class Bar {
|
|
call(x) => print('hello from $x');
|
|
}
|
|
class Foo {
|
|
final Bar bar = new Bar();
|
|
}
|
|
|
|
test() {
|
|
// looks like a method but is actually f.bar.call(...)
|
|
var f = new Foo();
|
|
f.bar("Bar's call method!");
|
|
|
|
// Tear-off
|
|
A a = new A();
|
|
var g = a.x;
|
|
|
|
// Dynamic Tear-off
|
|
dynamic aa = new A();
|
|
var h = aa.x;
|
|
|
|
// Tear-off of object methods
|
|
var ts = a.toString;
|
|
var nsm = a.noSuchMethod;
|
|
|
|
// Tear-off extension methods
|
|
var c = "".padLeft;
|
|
var r = (3.0).floor;
|
|
}
|