library test;

import 'dart:async';

Future f;
Future<List<int>> g2() async {}
Future<List<int>> g3() async {}
Future<List<int>> t2 = f.then((_) => [3]);
Future<int> t1 = f.then((_) => new MyFuture.value('hi'));

class MyFuture<T> implements Future<T> {
  MyFuture() {}
  MyFuture.value([x]) {}
  MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
  dynamic noSuchMethod(invocation) => null;
}

main() {}
