package org.checkerframework.framework.type; import com.sun.source.tree.Tree; import com.sun.source.util.SimpleTreeVisitor; import org.checkerframework.javacutil.ErrorReporter; /** * 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) { ErrorReporter.errorAbort("TypeFromTree.defaultAction: null tree"); return null; // dead code } ErrorReporter.errorAbort( "TypeFromTree.defaultAction: conversion undefined for tree type " + node.getKind() + "\n"); return null; // dead code } }