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
  • Constructor Summary

    Constructors
    Constructor
    Description
    TypeChecker(Context context, spoon.reflect.factory.Factory factory)
     
  • 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 moreInfo)
     
    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.cu.SourcePosition position, Predicate expectedType, Predicate foundType)
     
    void
    createSameStateError(spoon.reflect.cu.SourcePosition position, Predicate expectedType, String klass)
     
    createStateGhost(int order, spoon.reflect.declaration.CtElement element)
     
    void
    createStateMismatchError(spoon.reflect.cu.SourcePosition position, String method, Predicate found, Predicate expected)
     
     
    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
  • Constructor Details

    • TypeChecker

      public TypeChecker(Context context, spoon.reflect.factory.Factory factory)
  • 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 LJError
      Throws:
      LJError
    • handleStateSetsFromAnnotation

      public void handleStateSetsFromAnnotation(spoon.reflect.declaration.CtElement element) throws LJError
      Throws:
      LJError
    • 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) throws LJError
      Throws:
      LJError
    • handleAlias

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

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

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

      public void checkStateSMT(Predicate prevState, Predicate expectedState, spoon.reflect.declaration.CtElement target, String moreInfo) throws LJError
      Throws:
      LJError
    • checksStateSMT

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

      public void createError(spoon.reflect.cu.SourcePosition position, Predicate expectedType, Predicate foundType) throws LJError
      Throws:
      LJError
    • createSameStateError

      public void createSameStateError(spoon.reflect.cu.SourcePosition position, Predicate expectedType, String klass) throws LJError
      Throws:
      LJError
    • createStateMismatchError

      public void createStateMismatchError(spoon.reflect.cu.SourcePosition position, String method, Predicate found, Predicate expected) throws LJError
      Throws:
      LJError