mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
lambda: skip parenthesis exprs
This commit is contained in:
+1
-1
@@ -99,7 +99,7 @@ public class GraphInferencePolicy extends ProcessCandidateParameterTypeInference
|
||||
}
|
||||
|
||||
public static void forget(PsiElement parent) {
|
||||
if (parent instanceof PsiCallExpression) {
|
||||
if (parent instanceof PsiExpression) {
|
||||
final PsiElement gParent = parent.getParent();
|
||||
if (gParent instanceof PsiExpressionList) {
|
||||
final PsiElement ggParent = gParent.getParent();
|
||||
|
||||
+5
@@ -43,6 +43,11 @@ public class ProcessCandidateParameterTypeInferencePolicy extends DefaultParamet
|
||||
PsiCallExpression contextCall,
|
||||
PsiTypeParameter typeParameter) {
|
||||
PsiExpression[] expressions = expressionList.getExpressions();
|
||||
PsiElement parent = innerMethodCall.getParent();
|
||||
while (parent instanceof PsiParenthesizedExpression) {
|
||||
innerMethodCall = (PsiExpression)parent;
|
||||
parent = parent.getParent();
|
||||
}
|
||||
int i = ArrayUtil.find(expressions, innerMethodCall);
|
||||
if (i < 0) return null;
|
||||
PsiMethod owner = (PsiMethod)typeParameter.getOwner();
|
||||
|
||||
+6
-1
@@ -1073,7 +1073,12 @@ public class PsiResolveHelperImpl implements PsiResolveHelper {
|
||||
expectedType = ((PsiTypeCastExpression)parent).getType();
|
||||
} else if (parent instanceof PsiConditionalExpression) {
|
||||
if (PsiUtil.isLanguageLevel8OrHigher(parent)) {
|
||||
return inferMethodTypeParameterFromParent(parent.getParent(), (PsiExpression)parent, typeParameter, substitutor, policy);
|
||||
try {
|
||||
return inferMethodTypeParameterFromParent(PsiUtil.skipParenthesizedExprUp(parent.getParent()), (PsiExpression)parent, typeParameter, substitutor, policy);
|
||||
}
|
||||
finally {
|
||||
GraphInferencePolicy.forget(parent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user