PsiType (@NotNull GrExpression expression) { for (GrTypeCalculator<?> calculator : EP.forKey(expression.getClass())) { PsiType type = ((GrTypeCalculator<GrExpression>)calculator).getType(expression); if (type != null) return type; } return null; }