library;
//
// Problems in library:
//
// pkg/front_end/testcases/general/generic_function_type_in_message.dart:8:11: Error: A value of type 'num Function<A extends num, B extends num>(A, B)' can't be assigned to a variable of type 'int'.
//   int x = add;
//           ^
//
import self as self;
import "dart:core" as core;

static method add<A extends core::num* = core::num*, B extends core::num* = core::num*>(self::add::A* a, self::add::B* b) → core::num*
  return a.{core::num::+}(b);
static method test() → dynamic {
  core::int* x = let final Never* #t1 = invalid-expression "pkg/front_end/testcases/general/generic_function_type_in_message.dart:8:11: Error: A value of type 'num Function<A extends num, B extends num>(A, B)' can't be assigned to a variable of type 'int'.
  int x = add;
          ^" in (#C1) as{TypeError} core::int*;
}
static method main() → dynamic {
  if(self::add<core::int*, core::int*>(1, 2).{core::num::<}(3))
    self::test();
}

constants  {
  #C1 = tearoff self::add
}
