// 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; }