#5979 closed defect (fixed)
[with patch, positive review] Parent: fixes broken (implicit) invariant between ._element_constructor and self._element_init_pass_parent
Reported by: | nthiery | Owned by: | nthiery |
---|---|---|---|
Priority: | major | Milestone: | sage-4.0.1 |
Component: | coercion | Keywords: | coercion, parents, element_constructor |
Cc: | sage-combinat | Merged in: | 4.0.1.alpha0 |
Authors: | Nicolas M. Thiéry | Reviewers: | Robert Bradshaw |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description (last modified by )
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.
Attachments (1)
Change History (11)
comment:1 Changed 12 years ago by
- Description modified (diff)
Changed 12 years ago by
comment:2 Changed 12 years ago by
- Summary changed from Parent: fixes broken (implicit) invariant between ._element_constructor and self._element_init_pass_parent to [with patch, needs review] Parent: fixes broken (implicit) invariant between ._element_constructor and self._element_init_pass_parent
comment:3 Changed 12 years ago by
comment:4 Changed 12 years ago by
- Description modified (diff)
comment:5 Changed 12 years ago by
- Status changed from new to assigned
comment:6 Changed 12 years ago by
- Summary changed from [with patch, needs review] Parent: fixes broken (implicit) invariant between ._element_constructor and self._element_init_pass_parent to [with patch, positive review] Parent: fixes broken (implicit) invariant between ._element_constructor and self._element_init_pass_parent
comment:7 Changed 12 years ago by
- Resolution set to fixed
- Status changed from assigned to closed
Merged in 4.0.1.alpha0.
comment:8 Changed 12 years ago by
- Merged in set to 4.0.1.alpha0
- Reviewers set to Robert Bradshaw
comment:9 Changed 6 years ago by
- Description modified (diff)
- Report Upstream set to N/A
I should mention that sage -testall passes smoothly with sage-3.4.2-alpha0 (except for a trivial broken test in interfaces.r which also fails before applying the patch). Haven't tried it with sage-3.4.2 final (under compilation)