Class TypeChecker

java.lang.Object
spoon.reflect.visitor.CtScanner
liquidjava.processor.refinement_checker.TypeChecker
All Implemented Interfaces:
spoon.reflect.visitor.CtVisitor
Direct Known Subclasses:
ExternalRefinementTypeChecker, MethodsFirstChecker, RefinementTypeChecker

public abstract class TypeChecker extends spoon.reflect.visitor.CtScanner
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    final String
     
     
    final String
     
    final String
     
    final String
     
    final String
     
    final String
     
    final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    TypeChecker(Context c, spoon.reflect.factory.Factory fac, ErrorEmitter errorEmitter)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    checkSMT(Predicate expectedType, spoon.reflect.declaration.CtElement element)
     
    boolean
    checksStateSMT(Predicate prevState, Predicate expectedState, spoon.reflect.cu.SourcePosition p)
     
    void
    checkStateSMT(Predicate prevState, Predicate expectedState, spoon.reflect.declaration.CtElement target, String string)
     
    void
    checkVariableRefinements(Predicate refinementFound, String simpleName, spoon.reflect.reference.CtTypeReference<?> type, spoon.reflect.declaration.CtElement usage, spoon.reflect.declaration.CtElement variable)
     
    void
    createError(spoon.reflect.declaration.CtElement element, Predicate expectedType, Predicate foundType, String customeMessage)
     
    void
    createSameStateError(spoon.reflect.declaration.CtElement element, Predicate expectedType, String klass)
     
    createStateGhost(int order, spoon.reflect.declaration.CtElement element)
     
    void
    createStateMismatchError(spoon.reflect.declaration.CtElement element, String method, Predicate c, String states)
     
     
     
    spoon.reflect.factory.Factory
     
    protected void
    getGhostFunction(String value, spoon.reflect.declaration.CtElement element)
     
    protected String
    getQualifiedClassName(spoon.reflect.declaration.CtElement element)
     
    getRefinement(spoon.reflect.declaration.CtElement elem)
     
    getRefinementFromAnnotation(spoon.reflect.declaration.CtElement element)
     
    protected String
    getSimpleClassName(spoon.reflect.declaration.CtElement element)
     
    protected void
    handleAlias(String value, spoon.reflect.declaration.CtElement element)
     
    void
    handleStateSetsFromAnnotation(spoon.reflect.declaration.CtElement element)
     

    Methods inherited from class spoon.reflect.visitor.CtScanner

    enter, exit, scan, scan, scan, scan, scan, scan, scan, visitCtAnnotation, visitCtAnnotationFieldAccess, visitCtAnnotationMethod, visitCtAnnotationType, visitCtAnonymousExecutable, visitCtArrayRead, visitCtArrayTypeReference, visitCtArrayWrite, visitCtAssert, visitCtAssignment, visitCtBinaryOperator, visitCtBlock, visitCtBreak, visitCtCase, visitCtCatch, visitCtCatchVariable, visitCtCatchVariableReference, visitCtClass, visitCtCodeSnippetExpression, visitCtCodeSnippetStatement, visitCtComment, visitCtCompilationUnit, visitCtConditional, visitCtConstructor, visitCtConstructorCall, visitCtContinue, visitCtDo, visitCtEnum, visitCtEnumValue, visitCtExecutableReference, visitCtExecutableReferenceExpression, visitCtField, visitCtFieldRead, visitCtFieldReference, visitCtFieldWrite, visitCtFor, visitCtForEach, visitCtIf, visitCtImport, visitCtInterface, visitCtIntersectionTypeReference, visitCtInvocation, visitCtJavaDoc, visitCtJavaDocTag, visitCtLambda, visitCtLiteral, visitCtLocalVariable, visitCtLocalVariableReference, visitCtMethod, visitCtModule, visitCtModuleReference, visitCtModuleRequirement, visitCtNewArray, visitCtNewClass, visitCtOperatorAssignment, visitCtPackage, visitCtPackageDeclaration, visitCtPackageExport, visitCtPackageReference, visitCtParameter, visitCtParameterReference, visitCtProvidedService, visitCtRecord, visitCtRecordComponent, visitCtReturn, visitCtStatementList, visitCtSuperAccess, visitCtSwitch, visitCtSwitchExpression, visitCtSynchronized, visitCtTextBlock, visitCtThisAccess, visitCtThrow, visitCtTry, visitCtTryWithResource, visitCtTypeAccess, visitCtTypeMemberWildcardImportReference, visitCtTypeParameter, visitCtTypeParameterReference, visitCtTypePattern, visitCtTypeReference, visitCtUnaryOperator, visitCtUnboundVariableReference, visitCtUsedService, visitCtVariableRead, visitCtVariableWrite, visitCtWhile, visitCtWildcardReference, visitCtYieldStatement

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • TypeChecker

      public TypeChecker(Context c, spoon.reflect.factory.Factory fac, ErrorEmitter errorEmitter)
  • Method Details

    • getContext

      public Context getContext()
    • getFactory

      public spoon.reflect.factory.Factory getFactory()
    • getRefinement

      public Predicate getRefinement(spoon.reflect.declaration.CtElement elem)
    • getRefinementFromAnnotation

      public Optional<Predicate> getRefinementFromAnnotation(spoon.reflect.declaration.CtElement element) throws ParsingException
      Throws:
      ParsingException
    • handleStateSetsFromAnnotation

      public void handleStateSetsFromAnnotation(spoon.reflect.declaration.CtElement element)
    • getQualifiedClassName

      protected String getQualifiedClassName(spoon.reflect.declaration.CtElement element)
    • getSimpleClassName

      protected String getSimpleClassName(spoon.reflect.declaration.CtElement element)
    • createStateGhost

      protected Optional<GhostFunction> createStateGhost(int order, spoon.reflect.declaration.CtElement element)
    • getGhostFunction

      protected void getGhostFunction(String value, spoon.reflect.declaration.CtElement element)
    • handleAlias

      protected void handleAlias(String value, spoon.reflect.declaration.CtElement element)
    • checkVariableRefinements

      public void checkVariableRefinements(Predicate refinementFound, String simpleName, spoon.reflect.reference.CtTypeReference<?> type, spoon.reflect.declaration.CtElement usage, spoon.reflect.declaration.CtElement variable) throws ParsingException
      Throws:
      ParsingException
    • checkSMT

      public void checkSMT(Predicate expectedType, spoon.reflect.declaration.CtElement element)
    • checkStateSMT

      public void checkStateSMT(Predicate prevState, Predicate expectedState, spoon.reflect.declaration.CtElement target, String string)
    • checksStateSMT

      public boolean checksStateSMT(Predicate prevState, Predicate expectedState, spoon.reflect.cu.SourcePosition p)
    • createError

      public void createError(spoon.reflect.declaration.CtElement element, Predicate expectedType, Predicate foundType, String customeMessage)
    • createSameStateError

      public void createSameStateError(spoon.reflect.declaration.CtElement element, Predicate expectedType, String klass)
    • createStateMismatchError

      public void createStateMismatchError(spoon.reflect.declaration.CtElement element, String method, Predicate c, String states)
    • getErrorEmitter

      public ErrorEmitter getErrorEmitter()