Вверх ↑
Администрация
Ответов: 15295
Рейтинг: 1519
#1: 2007-06-15 13:03:28 ЛС | профиль | цитата
tsdima писал(а):
О невозможности компиляции такой схемы должен сообщить CodeGen

я же не зря немного уточнил проблему

Dilma писал(а):
утверждать, что каждый кодогенератор обязан всех их поддержать как только они появляются не правильно


При таком подходе, когда кодогенератор обнаружил в схеме некую фичу, которую он заранее не поддерживает есть один существенный недостаток: кодогенератор должен знать о существование всех фич, которые он не поддерживает. А это чревато тем, что завтра в среде появляется вот такая новая фича, все пакеты адаптируются под нее, и через день заходит Петя и качает новую среду без закачки всех изменившихся пакетов. И получает ошибки и зависания в некоторых своих программах...

Galkov писал(а):
Сделаем отдельный класс элемента.
Который ведет себя в среде как линк на мультик (показывает все точки оригинала и его же иконку).

Нет, это немного не то. Напомню проблему: создание линков совершенно прекрасно работает везде, даже если кодогенератор про них ничего не знает. Линков на элементы и линков на контейнеры. Однако как только линк на контейнер оказывается внутри этого контейнера начинаются проблемы. Схожая проблема это вставка интерефейсных элементов в неинтерфейсные проекты или неинтерфейсные контейнеры.

Еще парочка задач того же плана:
- ActionSkin - внутрь него впринципе нельзя вставлять ничего, кроме AS_Control, однако в среде этого определить никак нельзя.
- в большинстве случаев любое подключение верхней или нижней точки с типом array к точке с любым другим типом не имеет смысла. Однако опять таки же все, что мы можем сделать это проигнорировать такое подключение. Либо следуя совету:
tsdima писал(а):
невозможности компиляции такой схемы должен сообщить CodeGen. Желательно с подсветкой "некорректной" связи.

мы должны в каждом элементе и в каждом его методе, использующем данную точу вставить проверку и выдавать предупреждение...

   Поэтому видимо стоит всетаки перести решение подобных задач на среду и вынести блок проверки схемы в виде отдельного модуля. И в случае отсутствия такого модуля схема должна собираться.
карма: 27
0