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
    protected final Context
     
    protected final spoon.reflect.factory.Factory
     
    protected final VCChecker
     
  • 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)
     
    createStateGhost(int order, spoon.reflect.declaration.CtElement element)
     
     
    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 ref, spoon.reflect.declaration.CtElement element)
     
    void
    handleStateSetsFromAnnotation(spoon.reflect.declaration.CtElement element)
     
    void
    throwRefinementError(spoon.reflect.cu.SourcePosition position, Predicate expectedType, Predicate foundType)
     
    void
    throwStateConflictError(spoon.reflect.cu.SourcePosition position, Predicate expectedType)
     
    void
    throwStateRefinementError(spoon.reflect.cu.SourcePosition position, Predicate found, Predicate expected)
     

    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 Object

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

    • context

      protected final Context context
    • factory

      protected final spoon.reflect.factory.Factory factory
    • vcChecker

      protected final VCChecker vcChecker
  • 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 ref, 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
    • throwRefinementError

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

      public void throwStateRefinementError(spoon.reflect.cu.SourcePosition position, Predicate found, Predicate expected) throws LJError
      Throws:
      LJError
    • throwStateConflictError

      public void throwStateConflictError(spoon.reflect.cu.SourcePosition position, Predicate expectedType) throws LJError
      Throws:
      LJError