@SubtypeOf(value=UnannotatedString.class) @Target(value={TYPE_USE,TYPE_PARAMETER}) public @interface BinaryName
For example, in
package org.checkerframework.checker.signature; public class SignatureChecker { private class Inner {} }the binary names for the two types are org.checkerframework.checker.signature.SignatureChecker and org.checkerframework.checker.signature.SignatureChecker$Inner.
Binary names and fully qualified names are the same for top-level classes and only differ by '$' vs. '.' for inner classes.
The binary name should not be confused with the internal form, which is a variant of the binary name that actually appears in the class file.