Cómo inicializar una var en un lambda

Sigo chocando con situaciones como esta:

var allData: List<ResponseData> FileInputStream(dataPath).use { input -> // allData is initialized here allData = ResponseData.parse(input) } // Kotlin can't tell that allData was initialized useAllData(allData) 

El problema es, creo, que Kotlin no tiene idea de cuándo se llamará el lambda para use , por lo que no puede saber si la variable se inicializó en el momento en que se useAllData . Sospecho que esto es solo una limitación sin una buena solución, pero espero que alguien tenga una forma elegante de inicializar cosas en este tipo de bloques (por ejemplo, use , with , etc.)