From 7bc0048fc8567e3ef9ee395d79e1d9f5cdec18ed Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 23 Sep 2013 18:15:53 +0400 Subject: [PATCH] new inference: void compatible according to return values --- .../LambdaExpressionCompatibilityConstraint.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/LambdaExpressionCompatibilityConstraint.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/LambdaExpressionCompatibilityConstraint.java index 65e4e4edef0f..341932618938 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/LambdaExpressionCompatibilityConstraint.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/LambdaExpressionCompatibilityConstraint.java @@ -2,7 +2,6 @@ package com.intellij.psi.impl.source.resolve.graphInference.constraints; import com.intellij.psi.*; import com.intellij.psi.impl.source.resolve.graphInference.InferenceSession; -import com.intellij.psi.impl.source.resolve.graphInference.InferenceVariable; import com.intellij.psi.util.PsiUtil; import java.util.List; @@ -52,16 +51,17 @@ public class LambdaExpressionCompatibilityConstraint implements ConstraintFormul final PsiType returnType = interfaceMethod.getReturnType(); if (returnType != null) { + final List returnExpressions = LambdaUtil.getReturnExpressions(myExpression); if (returnType.equals(PsiType.VOID)) { - if (!myExpression.isVoidCompatible() && !(myExpression.getBody() instanceof PsiExpression)) { + if (!returnExpressions.isEmpty() && !(myExpression.getBody() instanceof PsiExpression)) { return false; } } else { - if (myExpression.isVoidCompatible()) { //not value-compatible + if (returnExpressions.isEmpty()) { //not value-compatible return false; } - for (PsiExpression returnExpressions : LambdaUtil.getReturnExpressions(myExpression)) { - constraints.add(new ExpressionCompatibilityConstraint(returnExpressions, substitutor.substitute(returnType))); + for (PsiExpression returnExpression : returnExpressions) { + constraints.add(new ExpressionCompatibilityConstraint(returnExpression, substitutor.substitute(returnType))); } } }