From 17a9fb25265f523c011b7570e8a17739eaa1db3d Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Mon, 17 Dec 2018 13:53:04 +0100 Subject: [PATCH] [tests] generic vararg decompilation test case (IDEA-204272) --- .../java/decompiler/SingleClassesTest.java | 1 + testData/classes/pkg/TestGenericArgs.class | Bin 0 -> 816 bytes testData/results/TestGenericArgs.dec | 55 ++++++++++++++++++ testData/src/pkg/TestGenericArgs.java | 15 +++++ 4 files changed, 71 insertions(+) create mode 100644 testData/classes/pkg/TestGenericArgs.class create mode 100644 testData/results/TestGenericArgs.dec create mode 100644 testData/src/pkg/TestGenericArgs.java diff --git a/test/org/jetbrains/java/decompiler/SingleClassesTest.java b/test/org/jetbrains/java/decompiler/SingleClassesTest.java index 6c1468a..927e10a 100644 --- a/test/org/jetbrains/java/decompiler/SingleClassesTest.java +++ b/test/org/jetbrains/java/decompiler/SingleClassesTest.java @@ -126,6 +126,7 @@ public class SingleClassesTest { @Test public void testPrivateClasses() { doTest("pkg/PrivateClasses"); } @Test public void testSuspendLambda() { doTest("pkg/TestSuspendLambdaKt"); } @Test public void testNamedSuspendFun2Kt() { doTest("pkg/TestNamedSuspendFun2Kt"); } + @Test public void testGenericArgs() { doTest("pkg/TestGenericArgs"); } private void doTest(String testFile, String... companionFiles) { ConsoleDecompiler decompiler = fixture.getDecompiler(); diff --git a/testData/classes/pkg/TestGenericArgs.class b/testData/classes/pkg/TestGenericArgs.class new file mode 100644 index 0000000000000000000000000000000000000000..6462ac041788b708549b9bc48ae9d96835416be1 GIT binary patch literal 816 zcmaix%}&BV6otghV$)7c^{K4LE5Av6yKg@fCaExm3Wj1& z`r>Z(JQT|1!wH?_J>d%_M}6sgdS9vc#(d753HLpxJK;gl)cLu-^n4!96d_K_yo6quy void genericSingle(Class var0) { + }// 4 + + private static void genericVarArgs(Class... var0) { + }// 6 + + private static void genericArray(Class[] var0) { + }// 8 + + private static void single(Class var0) { + }// 10 + + private static void varArgs(Class... var0) { + }// 12 + + private static void array(Class[] var0) { + }// 14 +} + +class 'pkg/TestGenericArgs' { + method 'genericSingle (Ljava/lang/Class;)V' { + 0 4 + } + + method 'genericVarArgs ([Ljava/lang/Class;)V' { + 0 7 + } + + method 'genericArray ([Ljava/lang/Class;)V' { + 0 10 + } + + method 'single (Ljava/lang/Class;)V' { + 0 13 + } + + method 'varArgs ([Ljava/lang/Class;)V' { + 0 16 + } + + method 'array ([Ljava/lang/Class;)V' { + 0 19 + } +} + +Lines mapping: +4 <-> 5 +6 <-> 8 +8 <-> 11 +10 <-> 14 +12 <-> 17 +14 <-> 20 diff --git a/testData/src/pkg/TestGenericArgs.java b/testData/src/pkg/TestGenericArgs.java new file mode 100644 index 0000000..e41d3ca --- /dev/null +++ b/testData/src/pkg/TestGenericArgs.java @@ -0,0 +1,15 @@ +package pkg; + +public class TestGenericArgs { + private static void genericSingle(Class param) { } + + private static void genericVarArgs(Class... param) { } + + private static void genericArray(Class[] param) { } + + private static void single(Class param) { } + + private static void varArgs(Class... param) { } + + private static void array(Class[] param) { } +} \ No newline at end of file