Index: src/natools-s_expressions-generic_caches.adb ================================================================== --- src/natools-s_expressions-generic_caches.adb +++ src/natools-s_expressions-generic_caches.adb @@ -75,11 +75,12 @@ end Create_Tree; function Duplicate (Source : Tree) return Tree is function Dup_List (First, Parent : Node_Access) return Node_Access; - function Dup_Node (N, Parent : Node_Access) return Node_Access; + function Dup_Node (N : not null Node_Access; Parent : Node_Access) + return Node_Access; New_Last : Node_Access := null; function Dup_List (First, Parent : Node_Access) return Node_Access is Source : Node_Access := First; @@ -97,17 +98,15 @@ Target := Target.Next; end loop; return Result; end Dup_List; - function Dup_Node (N, Parent : Node_Access) return Node_Access is + function Dup_Node (N : not null Node_Access; Parent : Node_Access) + return Node_Access + is Result : Node_Access; begin - if N = null then - return null; - end if; - case N.Kind is when Atom_Node => Result := new Node'(Kind => Atom_Node, Parent => Parent, Next => null,