@fundamentalparticle что-то я покрутил твою хотелку про обязательное присвоение так и сяк...
Сейчас и впрямь никак. Но что-то мне подсказывает, что как-то вот так:
interface BeanA {
var a: String;
var b: String;
}
inline fun beanA(init: BeanA.() -> Unit): BeanA {
return object: BeanA {
var a: String;
var b: String;
constructor() {
init();
}
}
}
fun main() {
beanA {
a = "kjhkjhkjh";
} // <-- Error property b is not initialized
}
Могло бы работать. Т.к. beanA и его лямда инлаёнится, то резолв инициализации могло бы происходить по месту и обнаруживать неприсвоенные проперти.
Но в object нету такой конструкции для конструкторов и ой...