// Copyright (c) 2020, 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=2.9

class A<X extends int> {}

class B {
  A<num> fieldOfA; // Error.
  static A<num> staticFieldOfA; // Error.
}

extension E<X extends A<num>> // Error.
    on A {
  static A<num> fieldOfE; // Error.
  A<num> fooOfE() => null; // Error.
  void barOfE(A<num> a) {} // Error.
  void bazOfE<Y extends A<num>>() {} // Error.
}

main() {}
