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

import "package:expect/expect.dart" show Expect;

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(() → Null => null){dynamic}.+(self::test((core::Object* o) → Null => null)){dynamic}.+(self::test((core::Object* o, core::StackTrace* t) → Null => null)));
}
