import 'dart:async';

final bool isWeakMode = const <Null>[] is List<Object>;
const c0 = null is int?;
const c1 = null is int;
const c2 = null is Null;
const c3 = null is Never?;
const c4 = null is Never;
const c5 = null is FutureOr<int?>;
const c6 = null is FutureOr<int>;
const c7 = null is FutureOr<int>?;
const c8 = null is FutureOr<Null>;
const c9 = null is FutureOr<Null>?;
const c10 = null is FutureOr<Never>;
const c11 = null is FutureOr<Never?>;
const c12 = null is FutureOr<Never>?;
const e1 = const Class<int>.constructor1(null);
const e2 = const Class<List<int>>.constructor1(<Null>[null]);
const e3 = const Class<Null>.constructor1(null);
const e4 = const Class<int>.constructor2(null);
const e5 = const Class<int?>.constructor2(null);
const e6 = const Class<Null>.constructor2(null);
const e7 = const Class<int>.constructor3(null);
const e8 = const Class<int?>.constructor3(null);
const e9 = const Class<Null>.constructor3(null);
const e10 = const Class<int>.constructor4(null);
const e11 = const Class<int?>.constructor4(null);
const e12 = const Class<Null>.constructor4(null);

class Class<T> {
  final bool field;
  const Class.constructor1(value) : field = value is T;
  const Class.constructor2(value) : field = value is T?;
  const Class.constructor3(value) : field = value is Class<T>;
  const Class.constructor4(value) : field = value is Class<T>?;
}

main() {}
expect(expected, actual, String message) {}
