// Copyright (c) 2017, 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.md file.

class A {
  static int field1;
  static int field2;

  static int get getter1 => 0;
  static int get getter2 => 0;

  static void set setter1(int x) {}
  static void set setter2(int x) {}

  static void method1() {}
  static void method2() {}
}
