diff --git a/test/org/jetbrains/java/decompiler/SingleClassesTest.java b/test/org/jetbrains/java/decompiler/SingleClassesTest.java index 7c1cc33..7a69a8e 100644 --- a/test/org/jetbrains/java/decompiler/SingleClassesTest.java +++ b/test/org/jetbrains/java/decompiler/SingleClassesTest.java @@ -96,6 +96,7 @@ public class SingleClassesTest { @Test public void testAsserts() { doTest("pkg/TestAsserts"); } @Test public void testLocalsNames() { doTest("pkg/TestLocalsNames"); } @Test public void testAnonymousParamNames() { doTest("pkg/TestAnonymousParamNames"); } + @Test public void testAnonymousParams() { doTest("pkg/TestAnonymousParams"); } private void doTest(String testFile, String... companionFiles) { ConsoleDecompiler decompiler = fixture.getDecompiler(); diff --git a/testData/classes/pkg/TestAnonymousParams$1.class b/testData/classes/pkg/TestAnonymousParams$1.class new file mode 100644 index 0000000..dccd219 Binary files /dev/null and b/testData/classes/pkg/TestAnonymousParams$1.class differ diff --git a/testData/classes/pkg/TestAnonymousParams.class b/testData/classes/pkg/TestAnonymousParams.class new file mode 100644 index 0000000..0946b63 Binary files /dev/null and b/testData/classes/pkg/TestAnonymousParams.class differ diff --git a/testData/results/TestAnonymousParams.dec b/testData/results/TestAnonymousParams.dec new file mode 100644 index 0000000..c487941 --- /dev/null +++ b/testData/results/TestAnonymousParams.dec @@ -0,0 +1,36 @@ +package pkg; + +import java.io.FilterInputStream; +import java.io.IOException; +import java.io.InputStream; + +public class TestAnonymousParams { + void foo(InputStream in, final int a) throws IOException { + FilterInputStream filterInputStream = new FilterInputStream(in) { + public int read() throws IOException { + return a;// 27 + } + };// 24 + filterInputStream.read();// 30 + }// 31 +} + +class 'pkg/TestAnonymousParams$1' { + method 'read ()I' { + 4 10 + } +} + +class 'pkg/TestAnonymousParams' { + method 'foo (Ljava/io/InputStream;I)V' { + a 12 + c 13 + 10 14 + } +} + +Lines mapping: +24 <-> 13 +27 <-> 11 +30 <-> 14 +31 <-> 15 diff --git a/testData/src/pkg/TestAnonymousParams.java b/testData/src/pkg/TestAnonymousParams.java new file mode 100644 index 0000000..55e58bf --- /dev/null +++ b/testData/src/pkg/TestAnonymousParams.java @@ -0,0 +1,32 @@ +/* + * Copyright 2000-2016 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package pkg; + +import java.io.FilterInputStream; +import java.io.IOException; +import java.io.InputStream; + +public class TestAnonymousParams { + void foo(InputStream in, int a) throws IOException { + FilterInputStream filterInputStream = new FilterInputStream(in) { + @Override + public int read() throws IOException { + return a; + } + }; + filterInputStream.read(); + } +}