mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
java inference: keep a sign of failed inference on the top level
revert partially previous change as currently expected types provider relies on inference failure marker GitOrigin-RevId: a48b44d21fbfeb9528bcacd6ac03cfecbaf36e61
This commit is contained in:
committed by
intellij-monorepo-bot
parent
589b029a97
commit
fe78876b14
+1
-1
@@ -41,7 +41,7 @@ public class InferenceSessionContainer {
|
||||
final PsiSubstitutor callSession = findNestedSubstitutor(((PsiCallExpression)returnExpression).getArgumentList(), null);
|
||||
if (callSession == null) {
|
||||
final InferenceSession inferenceSession =
|
||||
ExpressionCompatibilityConstraint.reduceExpressionCompatibilityConstraint(session, returnExpression, returnType);
|
||||
ExpressionCompatibilityConstraint.reduceExpressionCompatibilityConstraint(session, returnExpression, returnType, false);
|
||||
if (inferenceSession != null && inferenceSession != session) {
|
||||
registerNestedSession(inferenceSession);
|
||||
session.propagateVariables(inferenceSession);
|
||||
|
||||
+9
-3
@@ -93,7 +93,7 @@ public class ExpressionCompatibilityConstraint extends InputOutputConstraintForm
|
||||
}
|
||||
|
||||
if (myExpression instanceof PsiCall) {
|
||||
final InferenceSession callSession = reduceExpressionCompatibilityConstraint(session, myExpression, myT);
|
||||
final InferenceSession callSession = reduceExpressionCompatibilityConstraint(session, myExpression, myT, true);
|
||||
if (callSession == null) {
|
||||
return false;
|
||||
}
|
||||
@@ -128,7 +128,8 @@ public class ExpressionCompatibilityConstraint extends InputOutputConstraintForm
|
||||
|
||||
public static InferenceSession reduceExpressionCompatibilityConstraint(InferenceSession session,
|
||||
PsiExpression expression,
|
||||
PsiType targetType) {
|
||||
PsiType targetType,
|
||||
boolean registerErrorOnFailure) {
|
||||
if (!PsiPolyExpressionUtil.isPolyExpression(expression)) {
|
||||
return session;
|
||||
}
|
||||
@@ -194,8 +195,13 @@ public class ExpressionCompatibilityConstraint extends InputOutputConstraintForm
|
||||
session.registerIncompatibleErrorMessage(message);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
else if (registerErrorOnFailure) {
|
||||
//keep a sign that an inference failed
|
||||
session.registerIncompatibleErrorMessage("Failed to resolve argument");
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
return session;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user