[PATCH] D115014: [clang] RFC: NFC: simplify macro tokens assignment

Simon Tatham via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Dec 3 03:23:07 PST 2021

simon_tatham added a comment.

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.

  rG LLVM Github Monorepo



More information about the cfe-commits mailing list