code: public static MethodUsage toMethodUsage(MethodCallExpr call, ResolvedMethodDeclaration methodDeclaration, TypeSolver typeSolver) {
          TypeInference typeInference = new TypeInference(typeSolver);
          Optional<InstantiationSet> instantiationSetOpt = typeInference.instantiationInference(call, methodDeclaration);
          if (instantiationSetOpt.isPresent()) {
              return instantiationSetToMethodUsage(methodDeclaration, instantiationSetOpt.get());
          } else {
              throw new IllegalArgumentException();
          }
      }
docs: /