All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.checkerframework.common.reflection.MethodValChecker Maven / Gradle / Ivy

package org.checkerframework.common.reflection;

import java.util.LinkedHashSet;
import java.util.Set;
import org.checkerframework.common.basetype.BaseTypeChecker;
import org.checkerframework.common.basetype.BaseTypeVisitor;
import org.checkerframework.common.value.ValueChecker;
import org.checkerframework.framework.source.SourceChecker;
import org.plumelib.util.CollectionsPlume;

/**
 * The MethodVal Checker provides a sound estimate of the signature of Method objects.
 *
 * @checker_framework.manual #methodval-and-classval-checkers MethodVal Checker
 */
public class MethodValChecker extends BaseTypeChecker {
  @Override
  protected BaseTypeVisitor createSourceVisitor() {
    return new MethodValVisitor(this);
  }

  @Override
  protected Set> getImmediateSubcheckerClasses() {
    // Don't call super otherwise MethodVal will be added as a subChecker
    // which creates a circular dependency.
    Set> subCheckers =
        new LinkedHashSet<>(CollectionsPlume.mapCapacity(2));
    subCheckers.add(ValueChecker.class);
    subCheckers.add(ClassValChecker.class);
    return subCheckers;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy