library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

typedef _NullaryFunction = () → dynamic;
typedef _UnaryFunction = (dynamic) → dynamic;
typedef _BinaryFunction = (dynamic, dynamic) → dynamic;
static method main() → dynamic {
  core::print(#C1 is{ForNonNullableByDefault} () → dynamic);
  core::print(#C1 is{ForNonNullableByDefault} (dynamic) → dynamic);
  core::print(#C1 is{ForNonNullableByDefault} (dynamic, dynamic) → dynamic);
}

constants  {
  #C1 = static-tearoff self::main
}

Extra constant evaluation status:
Evaluated: IsExpression @ org-dartlang-testcase:///typedef.dart:10:14 -> BoolConstant(true)
Evaluated: IsExpression @ org-dartlang-testcase:///typedef.dart:11:14 -> BoolConstant(false)
Evaluated: IsExpression @ org-dartlang-testcase:///typedef.dart:12:14 -> BoolConstant(false)
Extra constant evaluation: evaluated: 6, effectively constant: 3
