/*
 * Copyright (c) 2019, 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 Static member declarations in the extension declaration can be
 * accessed the same way as static members of a class or mixin declaration: By
 * prefixing with the extension's name.
 * @description Check that static member can be accessed by prefixing with the
 * extension's name
 * @author iarkh@unipro.ru
 */


import "../../Utils/expect.dart";

extension MySmart on Object {
  static int getId() => 128;
  static Object smartHelper(Object o) { return o; }
}

main() {
  Expect.equals(128, MySmart.getId());
  Expect.equals("12345", MySmart.smartHelper("12345"));
}
