// 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.
// @dart=2.9
extension BestCom<T extends num> on Iterable<T> {
  T best() => null;
}
extension BestList<T> on List<T> {
  T best() => null;
}
extension BestSpec on List<num> {
 num best() => null;
}

main() {
  List<int> x;
  var v = x.best();
  List<num> y;
  var w = y.best();
}