List<Supplier<ReflectiveType>> ( @NotNull PsiMethodCallExpression callExpression ) { final PsiExpression[] arguments = callExpression.getArgumentList().getExpressions(); if (arguments.length == 2) { final PsiExpression methodType = findInnermostMethodType(arguments[1]); if (methodType != null) { final List<Supplier<ReflectiveType>> nestedSignature = getLazyMethodSignature(methodType); if (nestedSignature != null) { final List<Supplier<ReflectiveType>> signature = new ArrayList<>(nestedSignature); if (!signature.isEmpty()) { final PsiExpression returnType = arguments[0]; signature.set(0, () -> getReflectiveType(returnType)); } return signature; } } } return null; }