package org.checkerframework.checker.signature.qual;
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
import org.checkerframework.framework.qual.ImplicitFor;
import org.checkerframework.framework.qual.SubtypeOf;
/**
* Represents a {@link BinaryName binary name} as defined in the <a
* href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-13.html#jls-13.1">Java Language
* Specification, section 13.1</a>, but only for a non-array type in the unnamed package (also known
* as the default package).
*
* <p>Example: Foo$Inner Example: Foo$22 Example: Foo
*
* @checker_framework.manual #signature-checker Signature Checker
*/
@SubtypeOf({BinaryNameForNonArray.class, BinaryNameInUnnamedPackage.class})
@ImplicitFor(stringPatterns = "^[A-Za-z_][A-Za-z_0-9]*(\\$[A-Za-z_0-9]+)*$")
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
public @interface BinaryNameForNonArrayInUnnamedPackage {}