package org.checkerframework.common.basetype;
import com.sun.source.tree.Tree;
import org.checkerframework.framework.type.AnnotatedTypeMirror;
/**
* TypeValidator ensures that a type for a given tree is valid both for the tree and the type system
* that is being used to check the tree.
*/
public interface TypeValidator {
/**
* The entry point to the type validator. Validate the type against the given tree.
*
* @param type the type to validate
* @param tree the tree from which the type originated. Note that the tree might be a method
* tree -- the return type should then be validated. Note that the tree might be a variable
* tree -- the field type should then be validated.
* @return true, iff the type is valid
*/
public boolean isValid(AnnotatedTypeMirror type, Tree tree);
}