summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 6d3cfbf)
raw | patch | inline | side by side (parent: 6d3cfbf)
author | DeaDDooMER <deaddoomer@deadsoftware.ru> | |
Fri, 11 Aug 2017 12:02:36 +0000 (15:02 +0300) | ||
committer | DeaDDooMER <deaddoomer@deadsoftware.ru> | |
Fri, 11 Aug 2017 12:02:36 +0000 (15:02 +0300) |
notes | patch | blob | history | |
src/oberon.c | patch | blob | history |
index 7d6b72b343800718f28760503f77260056198640..c245ba0cbb6003961504531c4a851f75f24b4641 100644 (file)
--- a/notes
+++ b/notes
- Сделать проверку повторов в CASE и выполнять прирывание при отсутствии ELSE.
- Сделать выполнение прерывания при отсутствии ELSE в операторе WITH.
- Сделать нормальную проверку наличия RETURN.
-- Запретить массивы и записи как результат процедуры-функции.
-- Запретить модулю импорт самого себя.
- Нужно проверить правила совместимости типов (Приложение A).
- Нет модуля SYSTEM
diff --git a/src/oberon.c b/src/oberon.c
index 36736a4bf9384333eb1226c1b6835f202cdabab1..59a5c3d5fa7f6f11dc9e65e6b1974f59fca12770 100644 (file)
--- a/src/oberon.c
+++ b/src/oberon.c
{
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;
}
}