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

class C extends core::Object {
  final field dynamic x;
  constructor •(core::int* p) → self::C*
    : self::C::x = self::f<core::int*>(1.{core::num::+}(p)), super core::Object::•()
    ;
}
static method f<T extends core::Object* = dynamic>(self::f::T* t) → self::f::T*
  return t;
static method main() → dynamic {}
