// @dart = 2.14

import 'issue46719.dart' as self;

List<X> m<X>(X x) => [x];

class A<T> {
  A();
  A.named();
  List<X> m<X>(X x) => [x];
  static List<X> n<X>(X x) => [x];
}

extension FunctionApplier on Function {
  void applyAndPrint(List<Object?> positionalArguments) =>
      print(Function.apply(this, positionalArguments, const {}));
}

test() {}

void main() {}
