From 565172678653fcfd750c0da0f2e6e0841336f55d Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 19 Mar 2013 20:06:18 +0100 Subject: [PATCH] method ref -> lambda: on arrays: resolve naming conflicts (cherry picked from commit 91a8d6b875756fa2ca8a97afa9bf0cf7dec1a02c) --- .../types/ReplaceMethodRefWithLambdaIntention.java | 2 +- .../ArrayConstructorRefUniqueParamName.java | 14 ++++++++++++++ .../ArrayConstructorRefUniqueParamName_after.java | 14 ++++++++++++++ ...laceMethodReferenceWithLambdaIntentionTest.java | 4 ++++ 4 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 plugins/IntentionPowerPak/test/com/siyeh/ipp/types/methodRefs2lambda/ArrayConstructorRefUniqueParamName.java create mode 100644 plugins/IntentionPowerPak/test/com/siyeh/ipp/types/methodRefs2lambda/ArrayConstructorRefUniqueParamName_after.java 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(); + } }