The problem is that internally it is x.weasel (x) and after the target has been printed we notice that it is actually an infix feature. However, by then it is to lated add the needed parenthesis in front of the target: (x + x) This is why we use x.infix"+" (x) for now in the case of inherited or multi-constraint renamed featrues. It is valid Eiffel as well and once we refactor this code we can do a proper fix.