OberonCore https://forum.oberoncore.ru/ |
|
Про фразу narrowed in extension https://forum.oberoncore.ru/viewtopic.php?f=29&t=4425 |
Страница 1 из 1 |
Автор: | Пётр Кушнир [ Пятница, 09 Август, 2013 10:47 ] |
Заголовок сообщения: | Про фразу narrowed in extension |
Совсем недавно обнаружил для себя заужение типа результата переопределённой функции. Цитата: PROCEDURE (v: View) ThisModel (): TextModels.Model EXTENSBIBLE Result type is narrowed. Код: MODULE PrivNarrow;
TYPE Item* = POINTER TO ABSTRACT RECORD END; List* = POINTER TO ABSTRACT RECORD END; MyItem* = POINTER TO ABSTRACT RECORD (Item) END; MyList* = POINTER TO ABSTRACT RECORD (List) END; PROCEDURE (l: List) Set* (x: Item), NEW, ABSTRACT; PROCEDURE (l: List) Get* (): Item, NEW, ABSTRACT; PROCEDURE (l: MyList) Set* (x: Item), ABSTRACT; (* параметр не захотело заужать *) PROCEDURE (l: MyList) Get* (): MyItem, ABSTRACT; END PrivNarrow. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |