// Copyright (c) 2014, 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.

library private;

class P {
  pMethod1() {
  }

  pMethod2() {
  }

  _pMethod1() {
  }

  _pMethod2() {
  }

  static staticPMethod1() {
  }

  static staticPMethod2() {
  }

  static _staticPMethod1() {
  }

  static _staticPMethod2() {
  }
}
