// 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
/// Regression test for missing substitution of type variable used in the
/// return type of a generic method on a generic extension.

class Class<T> {}

extension Extension<T> on Class<T> {
  R method<R>(T t) => null;
}

main() {
  new Class<int>().method(0)?.toString();
}