blob: 1083d063874e7497db999a64eee490ffd6795c8c [file] [log] [blame]
package org.checkerframework.framework.type;
import com.sun.source.tree.Tree;
import com.sun.source.util.SimpleTreeVisitor;
import org.checkerframework.javacutil.BugInCF;
/**
* Converts a Tree into an AnnotatedTypeMirror. This class is abstract and provides 2 important
* properties to subclasses:
*
* <ol>
* <li>It implements SimpleTreeVisitor with the appropriate type parameters
* <li>It provides a defaultAction that causes all visit methods to abort if the subclass does not
* override them
* </ol>
*
* @see org.checkerframework.framework.type.TypeFromTree
*/
abstract class TypeFromTreeVisitor
extends SimpleTreeVisitor<AnnotatedTypeMirror, AnnotatedTypeFactory> {
TypeFromTreeVisitor() {}
@Override
public AnnotatedTypeMirror defaultAction(Tree node, AnnotatedTypeFactory f) {
if (node == null) {
throw new BugInCF("TypeFromTree.defaultAction: null tree");
}
throw new BugInCF(
"TypeFromTree.defaultAction: conversion undefined for tree type " + node.getKind());
}
}