blob: 534c5acf00b9a627b9e166e3ef238ca3b58f149c [file] [log] [blame]
package org.checkerframework.checker.signedness.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.DefaultFor;
import org.checkerframework.framework.qual.SubtypeOf;
import org.checkerframework.framework.qual.TypeKind;
import org.checkerframework.framework.qual.UpperBoundFor;
/**
* The value is to be interpreted as unsigned. That is, if the most significant bit in the bitwise
* representation is set, then the bits should be interpreted as a large positive number rather than
* as a negative number.
*
* @checker_framework.manual #signedness-checker Signedness Checker
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@SubtypeOf({UnknownSignedness.class})
@DefaultFor(
typeKinds = {TypeKind.CHAR},
types = {java.lang.Character.class})
@UpperBoundFor(
typeKinds = {TypeKind.CHAR},
types = {java.lang.Character.class})
public @interface Unsigned {}