SI-7202 tighten name mangling.
When the compiler wants to make private symbol visible outside its
declaring class, it also changes the name to make it unique to avoid
accidental overriding.

The current scheme prepends fullName of the owner class, which could
still result in two renamed symbols overriding if one the symbols
is declared in local class.

To avoid such scenario, name mangling prepends not onlythe names of
the enclosing classes, but also '$' characters for any non-class
owner.