On 2011-02-10 14:45:14 -0500, Tomek Sowiński <j...@ask.me> said:

Michel Fortin napisał:

Thanks for doing this. Is it approved by Walter?

Depends on what you mean by "approved".

He commented once on the newsgroup after I posted an earlier version of
the patch, saying I should add tests for type deduction and some other
stuff. This change his something he attempted to do in the past and
failed, I expect him to be skeptical.

It would be much easier if he provided the specific case(s) which broke his teeth. Then we'll all know where's the problem.

I don't think he had much time to look at the patch. His last remark were more of like "I'm skeptical it can work, please make sure you have tests to cover those specific cases..." followed with a list of things to test. I'll surely get some feedback on my patch someday, hopefully right after the next release (which should be imminent now).

The architecture of the DMD front end makes it very difficult to approach the tail-const problem for classes the same way it works for pointers. If this is what Walter tried, I have no difficulty understanding why it didn't go very far. My approach was to make the optional 'ref' a modifier that changes the attributes of a new head type attached to classes. This may look a little of a hack, but it works.


If it's soluble, it'll ope
n the door to tail type modifiers in general, not just in classes. It's a b
urning issue e.g. with ranges (mostly struct).

http://d.puremagic.com/issues/show_bug.cgi?id=5377

Look at the attachment to get a feel of what hoops we'll have to jump throu
gh to side-step lack of tail X.

Passing 'this' by reference in struct member functions makes it pretty much impossible to support tail const. The reason it works for classes is that class member functions receive a *copy* of the 'this' object reference, in other words the constness of the original reference does not matter.


--
Michel Fortin
michel.for...@michelf.com
http://michelf.com/

Reply via email to