Class TypeOutputtingChecker

All Implemented Interfaces:
Processor, OptionConfiguration

public class TypeOutputtingChecker extends BaseTypeChecker
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:

  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 outputs
  • Constructor Details

    • TypeOutputtingChecker

      public TypeOutputtingChecker()
  • Method Details

    • createSourceVisitor

      protected BaseTypeVisitor<?> createSourceVisitor()
      Description copied from class: BaseTypeChecker
      Returns 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.

      createSourceVisitor in class BaseTypeChecker
      the type-checking visitor
    • main

      public static void main(String[] args)
      Main entry point.
      args - command-line arguments
    • run

      public void run(@CanonicalName String[] args)
      Run the test.
      args - command-line arguments
    • printClassType

      protected static void printClassType(TypeElement typeElt, AnnotatedTypeFactory atypeFactory)
      Prints the types of the class and all of its enclosing fields, methods, and inner classes.