edrd
02/11/2021, 10:51 PMKSP is open to changes at this alpha stage so please feel free to reach out to us while seeing any bugs or areas to improve, whether they are in the implementation or API design.I'd love if the API didn't require usage of `var`s because of
init
and process
on the same interface. So this:
class Processor : SymbolProcessor {
private lateinit var codeGenerator: CodeGenerator
fun init(codeGenerator: CodeGenerator, ...) {
this.codeGenerator = codeGenerator
}
fun process(...) {}
}
would become this:
class Processor(private val codeGenerator: CodeGenerator) : SymbolProcessor {
override fun process(...) { ... }
object Provider : SymbolProcessorProvider {
override fun create(codeGenerator: CodeGenerator, ...) = Processor(codeGenerator)
}
}
as it's less code and safer. It would also allow for future optimizations like concurrent execution of multiple `SymbolProcessor`s since it would be possible to call SymbolProcessorProvider.create
, for example, for every module.