// RESOLVE_SCRIPT class Builder { var version: String = "" @Anno(En.Entry) fun execute() { println(version) } } enum class En { Entry } @Target(AnnotationTarget.EXPRESSION, AnnotationTarget.FUNCTION) @Retention(AnnotationRetention.SOURCE) annotation class Anno(val s: En) @Anno(En.Entry) fun build(action: Builder.() -> Unit) = Builder().apply(action) @Anno(En.Entry) build { version = "123" class A { @Anno(En.Entry) fun doo(i: Int) { } } execute() } val builder = build { version = "321" } @Anno(En.Entry) builder.execute() builder.version = ""