Andrew> I don't understand where you think the problem lies. As far Andrew> as I can see the form of a name is guaranteed, and therefore Andrew> using '$' is OK.
The mangling of inner types and whatnot is specified. So, one direction is ok. But, a top level type can still have a "$" in its name. Andrew> # The binary name of a top-level type is its canonical name (ยง6.7). ... so in this case, no demangling should be done. Andrew> # The binary name of a member type consists of the binary name of its Andrew> immediately enclosing type, followed by $, followed by the simple Andrew> name of the member. ... and this clause would not apply -- since we aren't looking at a member type. Likewise, we aren't looking at a local or anonymous class. The test class is something like: public class Foo$What { } The simple name of this is "Foo$What", not "What". Tom