// 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(@"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();
}
