From c535b4be889716bfd37a4f0dd888f398534bc306 Mon Sep 17 00:00:00 2001 From: DeaDDooMER Date: Fri, 11 Aug 2017 15:02:36 +0300 Subject: [PATCH] =?utf8?q?=D0=97=D0=B0=D0=BF=D1=80=D0=B5=D1=89=D1=91=D0=BD?= =?utf8?q?=20=D0=B2=D0=BE=D0=B7=D0=B2=D1=80=D0=B0=D1=82=20=D0=BC=D0=B0?= =?utf8?q?=D1=81=D1=81=D0=B8=D0=B2=D0=B0=20=D0=B8=D0=BB=D0=B8=20=D0=B7?= =?utf8?q?=D0=B0=D0=BF=D0=B8=D1=81=D0=B8=20=D1=84=D1=83=D0=BD=D0=BA=D1=86?= =?utf8?q?=D0=B8=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- notes | 2 -- src/oberon.c | 5 +++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/notes b/notes index 7d6b72b..c245ba0 100644 --- a/notes +++ b/notes @@ -1,8 +1,6 @@ - Сделать проверку повторов в CASE и выполнять прирывание при отсутствии ELSE. - Сделать выполнение прерывания при отсутствии ELSE в операторе WITH. - Сделать нормальную проверку наличия RETURN. -- Запретить массивы и записи как результат процедуры-функции. -- Запретить модулю импорт самого себя. - Нужно проверить правила совместимости типов (Приложение A). - Нет модуля SYSTEM diff --git a/src/oberon.c b/src/oberon.c index 36736a4..59a5c3d 100644 --- a/src/oberon.c +++ b/src/oberon.c @@ -2444,6 +2444,11 @@ oberon_formal_pars(oberon_context_t * ctx, oberon_type_t * signature) { 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; } } -- 2.29.2