Are there any plans to fix the "Assignment to reference" bug mentioned here?
https://groups.google.com/forum/?fromgroups=#!topic/cython-users/j58Sp3QMrD4 > Oh, yes, of course. Good old C++, where local T& x is unassignable but > assigning to an argument T& x is a common idiom. This is a bug in Cython. This is still broken in 0.19.2, and a casual inspection of 0.20rc1 suggests that it is broken there as well. Is the fix as simple as this? --- ExprNodes.py~ 2014-01-16 12:31:08.377573000 -0500 +++ ExprNodes.py 2014-01-16 12:30:56.945501000 -0500 @@ -1605,7 +1605,7 @@ class NameNode(AtomicExprNode): if self.type.is_const: error(self.pos, "Assignment to const '%s'" % self.name) - if self.type.is_reference: + if self.type.is_reference and not self.entry.is_arg: error(self.pos, "Assignment to reference '%s'" % self.name) if not self.is_lvalue(): error(self.pos, "Assignment to non-lvalue '%s'" This seems to work for me, but ... I wonder if it is also correct to set self.entry.cf_unused = True for the case of assignment to reference arguments, to avoid CYTHON_UNUSED annotations in the function definitions and unused variable warnings. -- Bob _______________________________________________ cython-devel mailing list cython-devel@python.org https://mail.python.org/mailman/listinfo/cython-devel