class Class1<T> {
  Class1._();
  factory Class1() = Class1<T>._;
}

class Class2<T extends num> {
  Class2._();
  factory Class2() = Class2<T>._;
}

class Class3<T extends S, S> {
  Class3._();
  factory Class3() = Class3<T, S>._;
}

class Class4<T extends Class4<T>> {
  Class4._();
  factory Class4() = Class4<T>._;
}

class Class4int extends Class4<Class4int> {
  Class4int._() : super._();
  factory Class4int() = Class4int._;
}

expect(expected, actual) {}
final bool inSoundMode = <int?>[] is! List<int>;
main() {}
testBounded() {}
testGeneric() {}
throws(Function() f, {bool inSoundModeOnly: false}) {}
