Переменные Lateinit: флаг компилятора, чтобы сообщить имя неинициализированной переменной lateinit? - PullRequest
0 голосов
/ 10 марта 2019

У меня есть случай, когда я использую переменную lateinit в качестве поля, например:

class LiteralExpr(val token: Tok) : Expr() {
    override fun <T> accept(visitor: Visitor<T>): T {
        return visitor.visitLiteralExpression(this)
    }


    class Builder {
        lateinit var token: Tok
        fun build(): LiteralExpr = LiteralExpr(token)
    }

    companion object {
        fun create(init: Builder.() -> Unit) = Builder().apply(init).build()
    }
}

Проблема в том, что если я не создаю объект lateinit Tok через Builder, компилятор просто сообщает мне, что общая переменная lateinit не инициализирована.

Было бы замечательно, если бы он также сказал мне имя переменной вместе с классом , к которому относится lateinit . Есть ли флаг или что-то, благодаря чему я мог бы реализовать это поведение?

...