  Line 40) ((JavaParserMethodDeclaration) methodDeclaration).resolveTypeVariables(context, parameterTypes) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserMethodDeclaration.resolveTypeVariables(com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
  Line 42) ((JavassistMethodDeclaration) methodDeclaration).resolveTypeVariables(context, parameterTypes) ==> com.github.javaparser.symbolsolver.javassistmodel.JavassistMethodDeclaration.resolveTypeVariables(com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
  Line 44) ((JavaParserEnumDeclaration.ValuesMethod) methodDeclaration).resolveTypeVariables(context, parameterTypes) ==> com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserEnumDeclaration.ValuesMethod.resolveTypeVariables(com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
  Line 46) ((ReflectionMethodDeclaration) methodDeclaration).resolveTypeVariables(context, parameterTypes) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionMethodDeclaration.resolveTypeVariables(com.github.javaparser.symbolsolver.core.resolution.Context, java.util.List<com.github.javaparser.symbolsolver.model.typesystem.Type>)
