library test;
import self as self;
import "dart:core" as core;
import "dart:math" as math;

import "dart:math";

static method f() → dynamic {
  core::num* x;
  dynamic y;
  core::num* a = math::max<dynamic>(x, y);
  core::Object* b = math::max<dynamic>(x, y);
  dynamic c = math::max<dynamic>(x, y);
  dynamic d = math::max<dynamic>(x, y);
}
static method main() → dynamic {}
