>From sage.modules.free_module.py there is some code copy pasted to
sage.modules.free_quadratic_module.py.

One instance is the 

class FreeQuadraticModule_submodule_with_basis_pid(
    free_module.FreeModule_submodule_with_basis_pid, 
FreeQuadraticModule_generic_pid)

where the __cmp__ method is copy pasted from its super class
free_module.FreeModule_submodule_with_basis_pid
well except for one line (checking the base rings). This missing line 
causes some bugs. trac: #23703 

So I expect that 
free_module.FreeModule_submodule_with_basis_pid.__cmp__ had some bug and it 
got fixed but that was after it was copy pasted. 

That sounds pretty horrible to me. 

So here is the question:
Was the method __cmp__ copy pasted for a good reason?

I see 3 possible fixes for my ticked:

a) copy paste the missing line too :(

b) delete the __cmp__ method completely so that it is inherited instead. 
Not sure if this can cause trouble?

c) rewrite the __cmp__ method to call explicitly 
super(FreeModule_submodule_with_basis_pid,self).__cmp__()

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to