org.checkerframework.common.aliasing.qual.Unique Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of guava Show documentation
Show all versions of guava Show documentation
Guava is a suite of core and expanded libraries that include
utility classes, google's collections, io classes, and much
much more.
package org.checkerframework.common.aliasing.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;
/**
* An expression with this type has no aliases. In other words, no other expression, evaluated at
* the same program point, would evaluate to the exact same object value.
*
* A constructor's return type should be annotated with {@code @Unique} if the constructor does
* not leak references to the constructed object. For example, the {@code String()} constructor
* return type is annotated as {@code @Unique}.
*
* @see MaybeAliased
* @checker_framework.manual #aliasing-checker Aliasing Checker
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@SubtypeOf({MaybeAliased.class})
public @interface Unique {}