  Line 43) constructor.getDeclaringClass() ==> java.lang.reflect.Constructor.getDeclaringClass()
  Line 48) constructor.getParameterCount() ==> java.lang.reflect.Constructor.getParameterCount()
  Line 53) getNumberOfParams() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionConstructorDeclaration.getNumberOfParams()
  Line 54) String.format("No param with index %d. Number of params: %d", i, getNumberOfParams()) ==> java.lang.String.format(java.lang.String, java.lang.Object...)
  Line 54) getNumberOfParams() ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionConstructorDeclaration.getNumberOfParams()
  Line 57) constructor.isVarArgs() ==> java.lang.reflect.Constructor.isVarArgs()
  Line 58) constructor.getParameterCount() ==> java.lang.reflect.Constructor.getParameterCount()
  Line 60) constructor.getParameterTypes() ==> java.lang.reflect.Constructor.getParameterTypes()
  Line 60) constructor.getGenericParameterTypes() ==> java.lang.reflect.Constructor.getGenericParameterTypes()
  Line 65) constructor.getName() ==> java.lang.reflect.Constructor.getName()
  Line 70) ReflectionFactory.modifiersToAccessLevel(constructor.getModifiers()) ==> com.github.javaparser.symbolsolver.reflectionmodel.ReflectionFactory.modifiersToAccessLevel(int)
  Line 70) constructor.getModifiers() ==> java.lang.reflect.Constructor.getModifiers()
  Line 75) Arrays.stream(constructor.getTypeParameters()).map((refTp) -> new ReflectionTypeParameter(refTp, false, typeSolver)).collect(Collectors.toList()) ==> java.util.stream.Stream.collect(java.util.stream.Collector<? super T, A, R>)
  Line 75) Arrays.stream(constructor.getTypeParameters()).map((refTp) -> new ReflectionTypeParameter(refTp, false, typeSolver)) ==> java.util.stream.Stream.map(java.util.function.Function<? super T, ? extends R>)
  Line 75) Arrays.stream(constructor.getTypeParameters()) ==> java.util.Arrays.stream(T[])
  Line 75) constructor.getTypeParameters() ==> java.lang.reflect.Constructor.getTypeParameters()
  Line 75) Collectors.toList() ==> java.util.stream.Collectors.toList()
