zhouyizhou added a comment.

In D115014#3169444 <https://reviews.llvm.org/D115014#3169444>, @simon_tatham 
wrote:

> Ah, now I see what you mean – I didn't look far enough!
>
> I don't know this code well (in fact I'm not sure why you picked me as a 
> reviewer), but off the top of my head: the question is not just whether 
> `tokens_iterator` happens to be the same thing as `const Token *` //now//. 
> It's whether it's guaranteed to stay that way in the future.
>
> One of the purposes of these iterator types is that they form an opaque 
> abstraction layer: the client uses the type in only the ways that are 
> guaranteed to work by the iterator specification, and then the implementation 
> can completely change without breaking any client.
>
> If you make a change like this, and later `SmallVector::iterator` changes to 
> some other legal implementation, or `tokens_iterator` changes to be something 
> other than a `SmallVector::iterator`, then this change will have to be 
> reverted.

Thank Simon for resolve my confusion

I am crystal clear about the use of &* pair now. I did benefit a lot.

I pick you as a reviewer because you have committed to TokenLexer.cpp recently 
(I use git log along with git blame );-)

Thanks again
Zhouyi


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D115014/new/

https://reviews.llvm.org/D115014

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to