library test;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;

import "dart:async";

static method add(core::int* x) → void {}
static method add2(core::int* y) → dynamic {}
static method test() → dynamic {
  asy::Future<core::int*>* f;
  asy::Future<void>* a = f.{asy::Future::then}<void>(#C1);
  asy::Future<dynamic>* b = f.{asy::Future::then}<dynamic>(#C2);
}
static method main() → dynamic {}

constants  {
  #C1 = tearoff self::add
  #C2 = tearoff self::add2
}
