[cfe-commits] r74197 - in /cfe/trunk: include/clang/Frontend/Utils.h lib/Frontend/CMakeLists.txt lib/Frontend/ResolveLocation.cpp
Argyrios Kyrtzidis
kyrtzidis at apple.com
Thu Jun 25 16:20:44 PDT 2009
On Jun 25, 2009, at 4:10 PM, Douglas Gregor wrote:
>
> On Jun 25, 2009, at 4:05 PM, Argyrios Kyrtzidis wrote:
>
>> On Jun 25, 2009, at 3:36 PM, Douglas Gregor wrote:
>>
>>>
>>> Okay, so the scheme here is: check whether the source location we're
>>> looking for is within the range of the current node. If so,
>>> recurse to
>>> find which sub-node it is in. I like that, although the CheckRange/
>>> FoundIt/Finished trio feels more complicated that it needs to be,
>>> because there's a lot of state encoded in Dcl/Stm/PassedLoc. Why not
>>> just have your Visit functions return std::pair<Decl*, Stmt*> (or
>>> something like it?).
>>
>> I initially had them returning a class with Decl, Stmt, bool
>> (PassedLoc), but I eventually moved that state into the LocResolver
>> class to avoid constantly passing the (mostly same) structure
>> amongst the visitor methods.
>
> Was it unwieldy, or were you worried about performance?
Performance. (yeah, I was enchanted by the "premature optimization"
mistress)
>
>> I don't have a strong opinion though, let me know if you think
>> returning the state from the visitor methods is better.
>
>
> It seems like it would be cleaner (more functional) to return the
> state from the visitor methods, but if you've tried it and didn't
> like it, that's fine, too.
I'll do that.
Thanks for reviewing!
-Argiris
More information about the cfe-commits
mailing list