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

class C extends core::Object {
  constructor expressionOnly() → void
    : assert(self::f<core::bool>()), super core::Object::•()
    ;
  constructor expressionAndMessage() → void
    : assert(self::f<core::bool>(), self::f<dynamic>()), super core::Object::•()
    ;
}
static method f<T extends core::Object = dynamic>() → self::f::T
  return null;
static method main() → dynamic {
  assert(self::f<core::bool>());
  assert(self::f<core::bool>(), self::f<dynamic>());
}
