У меня есть следующая функция
function Allocate(V : Value_Type; N : access Node) return access Node is
begin
return new Node'(Value => V, Next => N);
end Allocate;
при компиляции GNAT жалуется на то, что ожидает доступа к Node, но находит составной тип. Это кажется сломанным.
Узел:
protected type Node is
--Various routines
private
Value : Value_Type;
Next : access Node;
end Node;
Я вернулся к типам без задач, и у меня нет точного сообщения об ошибке. Это то, что я видел много раз, когда, например, просто использовал:
return (Value => V, Next => N);
или похожие. Я никогда не видел этого при использовании "new Type'()".