library;
import self as self;
import "dart:core" as core;
import "package:expect/expect.dart" as exp;

static method test(dynamic f) → dynamic {
  if(f is (core::Object, core::StackTrace) → void)
    return 1;
  if(f is (core::Object) → void)
    return 10;
  if(f is () → void)
    return 100;
}
static method main() → dynamic {
  exp::Expect::equals(111, self::test(() → core::Null => null).+(self::test((core::Object o) → core::Null => null)).+(self::test((core::Object o, core::StackTrace t) → core::Null => null)));
}
