fix(mxl-compile): внятный отказ на объектную форму columnSet

Раскладка адресуется именем из columnSets. Инлайновой формы в этом DSL нет ни у
чего: style у ячейки и font внутри стиля тоже только имена — именованные сущности
объявляются один раз и всюду адресуются по имени. Объектная форма стала бы второй
формой одного и создала бы асимметрию «раскладку инлайнить можно, а стиль нельзя».

Объект в columnSet и раньше не портил вывод — навык падал с «Unknown 'columnSet'»,
подставляя сериализованный объект. Но сериализация у портов разная (@{columns=5}
против {'columns': 5}), то есть сообщения расходились. Теперь это отдельная проверка
с текстом, одинаковым в обоих портах и прямо называющим правило.

Кейсы: column-sets (позитивный, ссылка и объявление доезжают до XML) и
error-columnset-inline.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-08-10 19:26:01 +03:00
co-authored by Claude Opus 5
parent 26b38e2ee3
commit 8302b17814
5 changed files with 220 additions and 2 deletions
@@ -0,0 +1,13 @@
{
"name": "Ошибка: columnSet задан объектом вместо имени",
"input": {
"columns": 3,
"areas": [
{ "name": "Шапка", "columnSet": { "columns": 5 }, "rows": [["А", "Б", "В"]] }
]
},
"params": {
"outputPath": "Template.xml"
},
"expectError": "'columnSet' must be a name declared in columnSets, got an object: area \"Шапка\""
}