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/