import 'dart:async';

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