I don't understand why the compiler lets `data` go uninitialized here. There's a case in the loop where it *never* gets initialized.