library /*isNonNullableByDefault*/;
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{ForNonNullableByDefault} (core::Object, core::StackTrace) → void)
    return 1;
  if(f is{ForNonNullableByDefault} (core::Object) → void)
    return 10;
  if(f is{ForNonNullableByDefault} () → 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)));
}
