To avoid the original issue that getting the superclass or an interface within the Javassist ctClass context was not always correct, the Javassist*Declarations will only use the ctClass to get the FQN, and use that FQN to refer back to SymbolSolver.
To retain all functionality, SymbolSolver also needed to be able to resolve within JavassistInterfaceDeclarations.
Future PRs will still have to tackle other CtClass::getInterfaces() and CtClass::getSuperClass() usages, as well as reduce code duplication within SymbolSolver::solveSymbolInType and its dependencies.
Relates to #326.
To avoid the original issue that getting the superclass or an interface within the Javassist ctClass context was not always correct, the Javassist*Declarations will only use the ctClass to get the FQN, and use that FQN to refer back to SymbolSolver.
To retain all functionality, SymbolSolver also needed to be able to resolve within JavassistInterfaceDeclarations.
Future PRs will still have to tackle other CtClass::getInterfaces() and CtClass::getSuperClass() usages, as well as reduce code duplication within SymbolSolver::solveSymbolInType and its dependencies.