  Line 44) JavassistFactory.typeUsageFor(ctField.getType(), typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.typeUsageFor(javassist.CtClass, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
  Line 44) ctField.getType() ==> javassist.CtField.getType()
  Line 52) Modifier.isStatic(ctField.getModifiers()) ==> java.lang.reflect.Modifier.isStatic(int)
  Line 52) ctField.getModifiers() ==> javassist.CtField.getModifiers()
  Line 57) ctField.getName() ==> javassist.CtField.getName()
  Line 77) JavassistFactory.modifiersToAccessLevel(ctField.getModifiers()) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.modifiersToAccessLevel(int)
  Line 77) ctField.getModifiers() ==> javassist.CtField.getModifiers()
  Line 82) JavassistFactory.toTypeDeclaration(ctField.getDeclaringClass(), typeSolver) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistFactory.toTypeDeclaration(javassist.CtClass, com.github.javaparser.symbolsolver.model.resolution.TypeSolver)
  Line 82) ctField.getDeclaringClass() ==> javassist.CtField.getDeclaringClass()
