import 'dart:async';

void main() {}
final t = StreamTransformer.fromHandlers(
    handleData: (data, sink) => Future.microtask(() => sink.add(data)),
    handleDone: (sink) => Future.microtask(() => sink.close()));
final s1 = [];
final s2 = s1?.length;
final s3 = new List<int>.filled(2, null);
final s4 = () {
  var e = 0;
  switch (e) {
    case 0:
      print('fallthrough');
    case 1:
    case '':
  }
}();
int? s5;
final s6 = s5 + 0;
List? s7;
final s8 = s7[0];
final s9 = s7[0] = 0;
final s10 = s7.length;
final s11 = s7.length = 0;
final s12 = -s5;
int Function()? s13;
final s14 = (s13)();
final s15 = throw null;
