// 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.

/**
 * @assertion Evaluation of a top-level getter invocation i of the form m,
 * where m is an identifier, proceeds as follows:
 * The getter function m is invoked. The value of i is the result returned by
 * the call to the getter function.
 * @description Checks that the value of a top-level getter invocation
 * is the result returned by the call to the getter function.
 * @author msyabro
 * @reviewer rodionov
 */
import '../../../Utils/expect.dart';

get a {
  return "v";
}

get b {
  return false;
}

get c {
  return 1;
}

main()  {
  Expect.equals("v", a);
  Expect.equals(false, b);
  Expect.equals(1, c);
}
