|  | // 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. | 
|  | // Dart test to catch error reporting bugs when using a field like a method. | 
|  |  | 
|  | class A { | 
|  | var foo; | 
|  | A() { | 
|  | foo = () {}; | 
|  | } | 
|  | void bar(var a) { | 
|  | a.foo(); // Tries to invoke the non-existing method 'foo'. | 
|  | /* | 
|  | 'a.foo()' is a "Regular instance-method invocation". The guide says: | 
|  | "If no method is found, the result of the invocation expression is | 
|  | equivalent to: $0.noSuchMethod(r"id", [$1, ..., $N])." | 
|  | Invoking noSuchMethod on an instance of A will invoke Object's | 
|  | noSuchMethod (because A doesn't override that method). Object's | 
|  | noSuchMethod will throw an error. | 
|  | */ | 
|  | } | 
|  | } | 
|  |  | 
|  | class FieldMethod4NegativeTest { | 
|  | static testMain() { | 
|  | var a = new A(); | 
|  | a.bar(); | 
|  | } | 
|  | } | 
|  |  | 
|  | main() { | 
|  | FieldMethod4NegativeTest.testMain(); | 
|  | } |