mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
new inference: capture return type to emulate method call expression type
(cherry picked from commit a14b996d8c3efe5b1dc4a6fc3d45aea5feff6197)
This commit is contained in:
+4
-1
@@ -113,7 +113,10 @@ public class ExpressionCompatibilityConstraint extends InputOutputConstraintForm
|
||||
callSession.initExpressionConstraints(parameters, args, myExpression);
|
||||
substitutor = callSession.infer(parameters, args, myExpression, true);
|
||||
}
|
||||
constraints.add(new TypeCompatibilityConstraint(GenericsUtil.eliminateWildcards(myT, false), substitutor.substitute(returnType)));
|
||||
final PsiType capturedReturnType = myExpression instanceof PsiMethodCallExpression
|
||||
? PsiMethodCallExpressionImpl.captureReturnType((PsiMethodCallExpression)myExpression, method, returnType, substitutor)
|
||||
: substitutor.substitute(returnType);
|
||||
constraints.add(new TypeCompatibilityConstraint(GenericsUtil.eliminateWildcards(myT, false), capturedReturnType));
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user