Я пытаюсь создать в Kotlin безопасный конструктор в стиле groovy, как описано здесь. Проблема заключается в видимости лямбда-приемников во вложенных лямбдах. Вот простой пример.
html {
head(id = "head1")
body() {
head(id = "head2")
}
}
Получателем вложенной лямбды является тело, у которого нет метода «голова». Тем не менее этот код компилируется и печатается в это:
<html>
<head id="head1"></head>
<head id="head2"></head>
<body></body>
</html>
Ожидается, но есть ли способ получить ошибку компиляции во внутренней головке?