public class TypeOutputtingChecker extends BaseTypeChecker
TypeElement
. In particular
it tests that the types read from classfiles are the same to the ones
from java files.
For testing, you need to do the following:
1. Run the Checker on the source file like any checker:
java -processor org.checkerframework.common.util.debug.TypeOutputtingChecker [source-file]
2. Run the Checker on the bytecode, by simply running the main and passing
the qualified name, e.g.
java org.checkerframework.common.util.debug.TypeOutputtingChecker [qualified-name]
3. Apply a simple diff on the two outputsModifier and Type | Class and Description |
---|---|
static class |
TypeOutputtingChecker.Visitor
Prints the types of the class and all of its enclosing
fields, methods, and inner classes
|
SourceChecker.CheckerError
currentRoot, DETAILS_SEPARATOR, errsOnLastExit, messager, messages, MSGS_FILE, parentChecker, SUPPRESS_ALL_KEY, trees, upstreamCheckerNames, visitor
processingEnv
Constructor and Description |
---|
TypeOutputtingChecker() |
Modifier and Type | Method and Description |
---|---|
protected BaseTypeVisitor<?> |
createSourceVisitor()
Returns the appropriate visitor that type-checks the compilation unit
according to the type system rules.
|
static void |
main(String[] args) |
protected static void |
printClassType(TypeElement typeElt,
AnnotatedTypeFactory atypeFactory)
Prints the types of the class and all of its enclosing
fields, methods, and inner classes
|
void |
run(String[] args) |
getAnnotationProvider, getChecker, getContext, getImmediateSubcheckerClasses, getOptions, getSubchecker, getSupportedLintOptions, getSupportedOptions, getTypeFactory, getTypeFactoryOfSubchecker, getVisitor, initChecker, invokeConstructorFor, processArg, shouldAddShutdownHook, shouldResolveReflection, shutdownHook, typeProcess, typeProcessingOver
addOptions, createSupportedLintOptions, errorAbort, errorAbort, expandCFOptions, formatStackTrace, fullMessageOf, getElementUtils, getLintOption, getLintOption, getMessages, getOption, getOption, getOptionConfiguration, getProcessingEnvironment, getProperties, getStandardSuppressWarningsKeys, getSupportedAnnotationTypes, getSupportedSourceVersion, getSuppressWarningsKeys, getTreeUtils, getTypeUtils, getUpstreamCheckerNames, hasOption, init, message, message, printStats, report, setLintOption, setParentChecker, setProcessingEnvironment, setSupportedLintOptions, shouldSkipDefs, shouldSkipDefs, shouldSkipUses, shouldSkipUses, shouldSuppressWarnings, shouldSuppressWarnings, treeToFilePositionString, typeProcessingStart, userErrorAbort, useUncheckedCodeDefault
process
getCompletions, isInitialized
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getElementUtils, getOptionConfiguration, getProcessingEnvironment, getTreeUtils, getTypeUtils
protected BaseTypeVisitor<?> createSourceVisitor()
BaseTypeChecker
This implementation uses the checker naming convention to create the
appropriate visitor. If no visitor is found, it returns an instance of
BaseTypeVisitor
. It reflectively invokes the constructor that
accepts this checker and the compilation unit tree (in that order)
as arguments.
Subclasses have to override this method to create the appropriate visitor if they do not follow the checker naming convention.
createSourceVisitor
in class BaseTypeChecker
public static void main(String[] args)
public void run(String[] args)
protected static void printClassType(TypeElement typeElt, AnnotatedTypeFactory atypeFactory)