package org.checkerframework.checker.index.upperbound;
import java.util.LinkedHashSet;
import org.checkerframework.checker.index.lowerbound.LowerBoundChecker;
import org.checkerframework.checker.index.samelen.SameLenChecker;
import org.checkerframework.checker.index.searchindex.SearchIndexChecker;
import org.checkerframework.common.basetype.BaseTypeChecker;
import org.checkerframework.common.value.ValueChecker;
import org.checkerframework.framework.source.SuppressWarningsKeys;
/**
* A type-checker for preventing arrays from being accessed with values that are too high.
*
* @checker_framework.manual #index-checker Index Checker
*/
@SuppressWarningsKeys({"index", "upperbound"})
public class UpperBoundChecker extends BaseTypeChecker {
@Override
protected LinkedHashSet<Class<? extends BaseTypeChecker>> getImmediateSubcheckerClasses() {
LinkedHashSet<Class<? extends BaseTypeChecker>> checkers =
super.getImmediateSubcheckerClasses();
checkers.add(SearchIndexChecker.class);
checkers.add(SameLenChecker.class);
checkers.add(LowerBoundChecker.class);
checkers.add(ValueChecker.class);
return checkers;
}
}