Closed Bug 453501 Opened 17 years ago Closed 13 years ago

typedef names are inconsistent

Categories

(Developer Infrastructure :: Source Code Analysis, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: benjamin, Unassigned)

References

Details

given this testcase: namespace Foo { typedef int A; A func(); } process_decl for "A" gets an object with .name A::Foo. process_decl for "func" has a .type.name of "A" This inconsistency is problematic for DXR and other things that key off type names. In addition, and perhaps related, I was surpised to learn that dehydra doesn't cache decls like it caches types. So, for example: struct A { const A *next; }; process_type(t) { let nextDecl = t.members[0]; let nextDecl2 = nextDecl.type.type.members[0]; // here nextDecl != nextDecl2 } So, I was thinking: is there any reason we can't extend the dehydra type map to include decls as well, and unify the divergent behaviors? I think I can write the patch, if this is a reasonable solution. This is basically how I implemented lazy-types.
Depends on: 437502
Blocks: 437502
No longer depends on: 437502
Yeah, there is reason for it. I'm not sure if the reason is any good. The way dehydra was designed, decls get created and then properties such as isFcall are attached to them to describe context. So having a map like we do for types would result in bad things. I suppose we could compromise and put decls into a the map when they aren't being created for describing stuff within function bodies. Either that or we could redefine how dehydra uses these variable objects to some other behavior.
Dehydra and treehydra are no longer maintained by Mozilla.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → WONTFIX
Product: Core → Firefox Build System
Product: Firefox Build System → Developer Infrastructure
You need to log in before you can comment on or make changes to this bug.