- Сделать проверку повторов в CASE и выполнять прирывание при отсутствии ELSE.
- Сделать выполнение прерывания при отсутствии ELSE в операторе WITH.
- Сделать нормальную проверку наличия RETURN.
-- Запретить массивы и записи как результат процедуры-функции.
-- Запретить модулю импорт самого себя.
- Нужно проверить правила совместимости типов (Приложение A).
- Нет модуля SYSTEM
{
oberon_error(ctx, "function result is not type");
}
+ if(typeobj -> type -> class == OBERON_TYPE_RECORD
+ || typeobj -> type -> class == OBERON_TYPE_ARRAY)
+ {
+ oberon_error(ctx, "records or arrays could not be result of function");
+ }
signature -> base = typeobj -> type;
}
}