Currently TypePrinter lumps anonymous classes and unnamed classes in one group "anonymous" this is not correct and can be confusing in some contexts. e.g.
LLDB SBType provides an IsAnonymousType() function but when displaying the type we see conflicting information, given:
struct A { struct { int x; }; // A struct { int y; } B; }; int main() { A a1; //... }
we get the following in LLDB:
(lldb) script var = lldb.frame.FindVariable("a1") (lldb) script print(var.GetChildAtIndex(0).GetType().IsAnonymousType()) True (lldb) script print(var.GetChildAtIndex(1).GetType().IsAnonymousType()) False (lldb) script print(var.GetChildAtIndex(0).GetType().GetName()) A::(anonymous struct) (lldb) script print(var.GetChildAtIndex(1).GetType().GetName()) A::(anonymous struct)
I think EnumDecl should probably be unnamed rather than anonymous because there's no term of art for an anonymous enumeration (there's only anonymous structures and anonymous unions). WDYT?