Opened 8 years ago

Closed 8 years ago

Last modified 9 months ago

#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 chapoton)

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)

parent-element_constructor-fix-5979-submitted.patch (4.1 KB) - added by nthiery 8 years ago.

Download all attachments as: .zip

Change History (11)

comment:1 Changed 8 years ago by nthiery

  • Description modified (diff)

comment:2 Changed 8 years ago by nthiery

  • 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 8 years ago by nthiery

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)

comment:4 Changed 8 years ago by nthiery

  • Description modified (diff)

comment:5 Changed 8 years ago by nthiery

  • Status changed from new to assigned

comment:6 Changed 8 years ago by robertwb

  • 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 8 years ago by mhansen

  • Resolution set to fixed
  • Status changed from assigned to closed

Merged in 4.0.1.alpha0.

comment:8 Changed 8 years ago by mhansen

  • Authors set to Nicolas Thiery
  • Merged in set to 4.0.1.alpha0
  • Reviewers set to Robert Bradshaw

comment:9 Changed 20 months ago by chapoton

  • Description modified (diff)
  • Report Upstream set to N/A

comment:10 Changed 9 months ago by chapoton

  • Authors changed from Nicolas Thiery to Nicolas M. Thiéry
Note: See TracTickets for help on using tickets.