// TARGET_BACKEND: JVM // ^ this test might be rather slow class Builder(var content: String) fun Builder.begin(t: String) { content += "<$t>" } fun Builder.text(t: String) { content += t } fun Builder.end(t: String) { content += "" } fun err(e: Throwable) {} inline fun Builder.tag(t: String, body: Builder.() -> Unit) { begin(t) try { body() } catch (e: Throwable) { err(e) } finally { end(t) } } inline fun Builder.t2(body: Builder.() -> Unit) { tag("t", body) tag("t", body) } val expectedLength = 1906 fun box(): String { val b = Builder("") b.t2 { t2 { t2 { t2 { t2 { t2 { t2 { text("1") } } } } } } } if (b.content.length != expectedLength) return "${b.content.length}" else return "OK" }