lambda: proceed c-like arrays declarations in parameters for lambda with excplicit type declarations (IDEA-152690)

This commit is contained in:
Anna Kozlova
2016-03-09 10:27:50 +01:00
parent 7bb78c99b4
commit 5b8e459686
3 changed files with 15 additions and 1 deletions

View File

@@ -214,7 +214,7 @@ public class PsiLambdaExpressionImpl extends ExpressionPsiElement implements Psi
PsiParameter parameter = lambdaParameters[lambdaParamIdx];
final PsiTypeElement typeElement = parameter.getTypeElement();
if (typeElement != null) {
final PsiType lambdaFormalType = toArray(typeElement.getType());
final PsiType lambdaFormalType = toArray(parameter.getType());
final PsiType methodParameterType = toArray(parameterTypes[lambdaParamIdx]);
if (!lambdaFormalType.equals(methodParameterType)) {
return false;

View File

@@ -0,0 +1,10 @@
interface X {
void foo(int[] x);
}
class C {
static void main(String[] args){
X a = (int x[]) -> { };
}
}

View File

@@ -276,6 +276,10 @@ public class NewLambdaHighlightingTest extends LightDaemonAnalyzerTestCase {
doTest();
}
public void testCLikeArrayDeclarationInLambdaWithExplicitTypes() throws Exception {
doTest();
}
private void doTest() {
doTest(false);
}