Re: [CEDET-devel] Changes to c.by for parsing 'using' and 'namespace'
Brought to you by:
zappo
From: Eric M. L. <er...@si...> - 2009-08-13 18:36:18
|
On Thu, 2009-08-13 at 15:46 +0200, David Engster wrote: > Eric M. Ludlam <er...@si...> writes: > > I applied your patch, but had a test failure from the parsed output. > > I had to fiddle with it for a while to get everything working again. > > > > The original code creating 'using tags with a :type that was itself a > > tag with a :prototype set to t. What I checked in keeps that > > distinction, while adding differentiation between classes and > > namespaces. > > Thanks for correcting this. I do not really understand why the original > patch broke some tests; I made sure that 'make utest' still works. Do > you have additional tests on your machine which are not in CVS? I only had a patch from you I had integrated and checked in on July 17. > > I also added your alias item. The typedef equivalent of an alias does > > not use a :kind meaning an alias, it's just a typedef tag. It then > > needed special code to use the typedef as an alias while looking up > > symbols. This new thing is a bit different though, so I didn't mess > > with it. > > If you prefer to use a typedef tag for a C++ namespace alias, I guess I > could change that. Tags should always describe the code as best it can, so I think it should be a namespace with attributes to describe what it does. We'll just need to add special code to interpret this tag. > The reason I did it this way is to resolve all kinds > of namespace aliasing in one dereferencer (which I haven't posted > yet). This dereferencer tries to resolve stuff like > > namespace foo = bar; > > as well as, for example, > > namespace foo { > using namespace bar; > } > > Both statements practically make 'foo' an alias for 'bar', so I tried to > parse them in a similar manner. (The latter statement has some > additional consequences regarding symbol lookup in namespace 'foo', but > that's another matter.) C++ is full of fun tricks. > > I've forgotten a bunch from this thread. Where there new tests > > related to this patch that uses the namespace/alias thing? > > No. These patches to c.by still need the namespace-dereferencer (which > is finished; I'll post it when we have figured out the 'fully qualified > parent' stuff, since it depends a little bit on how that will be > implemented in the end). I still think that the name lookup of some parent class should be scoped to the location of the parent tag. That was one of the things I wanted to resolve next. Eric |