Class TypeOutputtingChecker
java.lang.Object
javax.annotation.processing.AbstractProcessor
org.checkerframework.javacutil.AbstractTypeProcessor
org.checkerframework.framework.source.SourceChecker
org.checkerframework.common.basetype.BaseTypeChecker
org.checkerframework.common.util.debug.TypeOutputtingChecker
- All Implemented Interfaces:
Processor,OptionConfiguration
A testing class that can be used to test
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:
- Run the Checker on the source file like any checker:
java -processor org.checkerframework.common.util.debug.TypeOutputtingChecker [source-file] - 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] - Apply a simple diff on the two outputs
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classStores any explicit annotation in AnnotatedTypeMirrors.static classPrints the types of the class and all of its enclosing fields, methods, and inner classes.Nested classes/interfaces inherited from class org.checkerframework.framework.source.SourceChecker
SourceChecker.CheckerMessage -
Field Summary
Fields inherited from class org.checkerframework.common.basetype.BaseTypeChecker
baseTypeCheckerClassArray, ultimateParentCheckerFields inherited from class org.checkerframework.framework.source.SourceChecker
activeOptions, currentRoot, DETAILS_SEPARATOR, elements, elementsWithSuppressedWarnings, immediateSubcheckers, javacErrored, messager, messagesProperties, messageStore, MSGS_FILE, OPTION_SEPARATOR, parentChecker, subcheckers, supportedOptions, SUPPRESS_ALL_MESSAGE_KEY, SUPPRESS_ALL_PREFIX, suppressWarningsPrefixesOfSubcheckers, treePathCacher, trees, types, UNNEEDED_SUPPRESSION_KEY, upstreamCheckerNames, useAllcheckersPrefix, visitorFields inherited from class javax.annotation.processing.AbstractProcessor
processingEnv -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected BaseTypeVisitor<?> Returns the appropriate visitor that type-checks the compilation unit according to the type system rules.static voidMain entry point.protected static voidprintClassType(TypeElement typeElt, AnnotatedTypeFactory atypeFactory) Prints the types of the class and all of its enclosing fields, methods, and inner classes.voidrun(@CanonicalName String[] args) Run the test.Methods inherited from class org.checkerframework.common.basetype.BaseTypeChecker
createSourceVisitorPublic, createSupportedLintOptions, getAnnotationProvider, getTypeFactory, getTypeFactoryOfSubcheckerOrNull, getUltimateParentChecker, getVisitor, invokeConstructorFor, processErrorMessageArg, shouldAddShutdownHook, shutdownHookMethods inherited from class org.checkerframework.framework.source.SourceChecker
expandCFOptions, fullMessageOf, getBooleanOption, getBooleanOption, getElementUtils, getExtraStubFiles, getImmediateSubcheckerClasses, getLintOption, getLintOption, getMessagesProperties, getOption, getOption, getOptionConfiguration, getOptions, getOptionsNoSubcheckers, getParentChecker, getPathToCompilationUnit, getProcessingEnvironment, getProperties, getRelatedClassName, getStandardSuppressWarningsPrefixes, getStringsOption, getStringsOption, getSubchecker, getSubCheckerIndex, getSubcheckers, getSupportedAnnotationTypes, getSupportedLintOptions, getSupportedOptions, getSupportedSourceVersion, getSuppressWarningsPrefixes, getSuppressWarningsPrefixesOfSubcheckers, getTreePathCacher, getTreeUtils, getTypeUtils, getUpstreamCheckerNames, hasOption, hasOptionNoSubcheckers, init, initChecker, instantiateSubcheckers, message, message, messageKeyMatches, printOrStoreMessage, printOrStoreMessage, printStats, printStoredMessages, report, reportError, reportWarning, setLintOption, setParentChecker, setRoot, shouldResolveReflection, shouldSkipDefs, shouldSkipDefs, shouldSkipDefs, shouldSkipFiles, shouldSkipUses, shouldSkipUses, shouldSuppressWarnings, shouldSuppressWarnings, shouldSuppressWarnings, typeProcess, typeProcessingOver, typeProcessingStart, useConservativeDefault, warnUnneededSuppressions, warnUnneededSuppressionsMethods inherited from class org.checkerframework.javacutil.AbstractTypeProcessor
getCompilerLog, processMethods inherited from class javax.annotation.processing.AbstractProcessor
getCompletions, isInitializedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.checkerframework.framework.util.OptionConfiguration
getStringsOption, getStringsOption
-
Constructor Details
-
TypeOutputtingChecker
public TypeOutputtingChecker()
-
-
Method Details
-
createSourceVisitor
Description copied from class:BaseTypeCheckerReturns the appropriate visitor that type-checks the compilation unit according to the type system rules.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.
- Overrides:
createSourceVisitorin classBaseTypeChecker- Returns:
- the type-checking visitor
-
main
Main entry point.- Parameters:
args- command-line arguments
-
run
Run the test.- Parameters:
args- command-line arguments
-
printClassType
Prints the types of the class and all of its enclosing fields, methods, and inner classes.
-