library;
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 () →* dynamic);
  core::print(#C1 is (dynamic) →* dynamic);
  core::print(#C1 is (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
