org.checkerframework.checker.signature.qual.BinaryName Maven / Gradle / Ivy
package org.checkerframework.checker.signature.qual;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.checkerframework.framework.qual.SubtypeOf;
/**
* Represents a binary name as defined in the Java Language
* Specification, section 13.1.
*
* 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 {@linkplain InternalForm internal form} only differ by the use of '.' vs. '/'
* as package separator.
*
*
The binary name should not be confused with the {@linkplain InternalForm internal form}, which
* is a variant of the binary name that actually appears in the class file.
*
* @checker_framework.manual #signature-checker Signature Checker
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@SubtypeOf({BinaryNameOrPrimitiveType.class})
public @interface BinaryName {}