> -- Info21 писал(а):
> Было бы любопытно о впечатлениях других людей узнать в этом вопросе.Наверное, в компиляторе получилось единообразнее: короткий массив копируется в длинный массив, короткая запись - в длинную запись.

Мне, кстати, такая возможность однажды понадобилась в Oberon-2, если я правильно помню, пришлось прибегнуть к SYSTEM.MOVE. Впрочем, я там изголялся ввиду отсутствия в Обероне-2 абстрактных записей Компонентного Паскаля. Если бы были абстрактные записи, то не понадобилось бы.

Во, нашёл:## Код:
```
TYPE
   StrHeadDesc = RECORD(StrDesc)...
...
PROCEDURE CopyStrDesc (VAR src, dst: StrDesc);
(* Copy 'src' record contents into 'dst', even if their actual types are
 * extended. It is impossible to assign "StrHeadDesc := StrDesc" in XDS
 * despite the Oberon language "projection" requirement for record assignment,
 * thus this hack. *)
BEGIN
   SYSTEM.MOVE (SYSTEM.ADR (src), SYSTEM.ADR (dst), SIZE (StrDesc));
END CopyStrDesc;
```
