diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/types/ReplaceMethodRefWithLambdaIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/types/ReplaceMethodRefWithLambdaIntention.java index 543404119b92..8ffc5eebfbe0 100644 --- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/types/ReplaceMethodRefWithLambdaIntention.java +++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/types/ReplaceMethodRefWithLambdaIntention.java @@ -122,7 +122,7 @@ public class ReplaceMethodRefWithLambdaIntention extends Intention { int dim = type.getArrayDimensions(); buf.append(type.getDeepComponentType().getCanonicalText()); buf.append("["); - buf.append(parameters[0].getName()); + buf.append(map.get(parameters[0])); buf.append("]"); while (--dim > 0) { buf.append("[]"); diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/types/methodRefs2lambda/ArrayConstructorRefUniqueParamName.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/types/methodRefs2lambda/ArrayConstructorRefUniqueParamName.java new file mode 100644 index 000000000000..9c22e194ce6c --- /dev/null +++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/types/methodRefs2lambda/ArrayConstructorRefUniqueParamName.java @@ -0,0 +1,14 @@ +public class Foo { + public void test() { + Object i = null; + long[][] avg = collect(long[][]::new); + } + + interface P { + T _(int i); + } + + T collect(P h) { + return null; + } +} \ No newline at end of file diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/types/methodRefs2lambda/ArrayConstructorRefUniqueParamName_after.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/types/methodRefs2lambda/ArrayConstructorRefUniqueParamName_after.java new file mode 100644 index 000000000000..a97db7b453f1 --- /dev/null +++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/types/methodRefs2lambda/ArrayConstructorRefUniqueParamName_after.java @@ -0,0 +1,14 @@ +public class Foo { + public void test() { + Object i = null; + long[][] avg = collect((i1) -> new long[i1][]); + } + + interface P { + T _(int i); + } + + T collect(P h) { + return null; + } +} \ No newline at end of file diff --git a/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/types/ReplaceMethodReferenceWithLambdaIntentionTest.java b/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/types/ReplaceMethodReferenceWithLambdaIntentionTest.java index a8bbe45d51c0..650a2d8a5266 100644 --- a/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/types/ReplaceMethodReferenceWithLambdaIntentionTest.java +++ b/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/types/ReplaceMethodReferenceWithLambdaIntentionTest.java @@ -101,4 +101,8 @@ public class ReplaceMethodReferenceWithLambdaIntentionTest extends IPPTestCase { public void testArrayMethodRef() throws Exception { doTest(); } + + public void testArrayConstructorRefUniqueParamName() throws Exception { + doTest(); + } }