#5979: [with patch, needs review] Parent: fixes broken (implicit) invariant
between ._element_constructor and self._element_init_pass_parent
----------------------+-----------------------------------------------------
 Reporter:  nthiery   |       Owner:  nthiery                               
     Type:  defect    |      Status:  new                                   
 Priority:  major     |   Milestone:  sage-4.0                              
Component:  coercion  |    Keywords:  coercion, parents, element_constructor
----------------------+-----------------------------------------------------
Description changed by nthiery:

Old description:

> In Parent, there is a (previously implicit) invariant, namely that:
>
>         self._element_init_pass_parent == guess_pass_parent(between
> ._element_constructor)
>
> This invariant was broken when self._element_constructor was set from
> self._element_constructor_ by __call__. This made the parent not to be
> passed properly to _element_constructor.
>
> The category patch #5891 depends heavily on this one, as this way of
> setting _element_constructor becomes the default one for simple
> parents.
>
> By the way, this patch makes a related trivial fix to a line that is
> apparently never used in coerce_maps, and adds a comment about it.

New description:

 In Parent, there is a (previously implicit) invariant, namely that:

         self._element_init_pass_parent == guess_pass_parent(between
 ._element_constructor)

 This invariant was broken when self._element_constructor was set from
 self._element_constructor_ by __call__. This made the parent not to be
 passed properly to _element_constructor.

 This patch fixes this (one line), and adds a corresponding doctest.
 It also includes a related trivial fix to a line that is apparently never
 used in coerce_maps, and adds a comment about this.

 The category patch #5891 depends heavily on this one, as this way of
 setting _element_constructor becomes the default one for simple
 parents.

--

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/5979#comment:4>
Sage <http://sagemath.org/>
Sage - Open Source Mathematical Software: Building the Car Instead of 
Reinventing the Wheel

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to