Closed
Bug 453501
Opened 17 years ago
Closed 13 years ago
typedef names are inconsistent
Categories
(Developer Infrastructure :: Source Code Analysis, defect)
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.
| Reporter | ||
Updated•17 years ago
|
Comment 1•17 years ago
|
||
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.
Comment 2•13 years ago
|
||
Dehydra and treehydra are no longer maintained by Mozilla.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → WONTFIX
Updated•8 years ago
|
Product: Core → Firefox Build System
Updated•3 years ago
|
Product: Firefox Build System → Developer Infrastructure
You need to log in
before you can comment on or make changes to this bug.
Description
•