Amazing, extension functions are available within ...
# announcements
h
Amazing, extension functions are available within builder blocks/scopes. I didn't expect that. Well done!
Copy code
fun main(args: Array<String>) {
    query {
        Attribute() startsWith "foo" // statsWith only available within query {}
    }
}

class Attribute

class QueryBuilder {
    infix fun Attribute.startsWith(value: Any) = Unit
}

fun query(builder: QueryBuilder.() -> Unit) {
    builder(QueryBuilder())
}