PsiType (@NotNull GrFunctionalExpression expression, int index) { final PsiElement parent = expression.getParent(); if (parent instanceof GrNamedArgument) { final Pair<PsiMethod, PsiSubstitutor> pair = getOverriddenMethod((GrNamedArgument)parent); if (pair != null) { final PsiParameter[] parameters = pair.first.getParameterList().getParameters(); if (parameters.length > index) { return pair.second.substitute(parameters[index].getType()); } return null; } } return null; }