summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoman Shevchenko <roman.shevchenko@jetbrains.com>2014-09-12 10:28:54 +0400
committerRoman Shevchenko <roman.shevchenko@jetbrains.com>2014-09-12 10:29:13 +0400
commite74977d4673055980267bb3ee64da9b6d8d6e527 (patch)
tree9f9b0d81cee3a7a3737713090746ceec8c5f77f3
parent95cd67883e73a512371d64ce026d97a322fca26a (diff)
downloadfernflower-e74977d4673055980267bb3ee64da9b6d8d6e527.tar
fernflower-e74977d4673055980267bb3ee64da9b6d8d6e527.tar.gz
fernflower-e74977d4673055980267bb3ee64da9b6d8d6e527.tar.lz
fernflower-e74977d4673055980267bb3ee64da9b6d8d6e527.tar.xz
fernflower-e74977d4673055980267bb3ee64da9b6d8d6e527.zip
IDEA-128685 (test added)
-rw-r--r--test/org/jetbrains/java/decompiler/SingleClassesTest.java1
-rw-r--r--testData/classes/pkg/TestClassCast.classbin0 -> 625 bytes
-rw-r--r--testData/results/TestClassCast.dec15
-rw-r--r--testData/src/pkg/TestClassCast.java28
4 files changed, 44 insertions, 0 deletions
diff --git a/test/org/jetbrains/java/decompiler/SingleClassesTest.java b/test/org/jetbrains/java/decompiler/SingleClassesTest.java
index 109fbc7..6261591 100644
--- a/test/org/jetbrains/java/decompiler/SingleClassesTest.java
+++ b/test/org/jetbrains/java/decompiler/SingleClassesTest.java
@@ -50,6 +50,7 @@ public class SingleClassesTest {
@Test public void testClassTypes() { doTest("TestClassTypes"); }
@Test public void testClassVar() { doTest("TestClassVar"); }
@Test public void testClassNestedInitializer() { doTest("TestClassNestedInitializer"); }
+ @Test public void testClassCast() { doTest("TestClassCast"); }
@Test public void testDeprecations() { doTest("TestDeprecations"); }
@Test public void testExtendsList() { doTest("TestExtendsList"); }
@Test public void testMethodParameters() { doTest("TestMethodParameters"); }
diff --git a/testData/classes/pkg/TestClassCast.class b/testData/classes/pkg/TestClassCast.class
new file mode 100644
index 0000000..5b71ce8
--- /dev/null
+++ b/testData/classes/pkg/TestClassCast.class
Binary files differ
diff --git a/testData/results/TestClassCast.dec b/testData/results/TestClassCast.dec
new file mode 100644
index 0000000..e09162c
--- /dev/null
+++ b/testData/results/TestClassCast.dec
@@ -0,0 +1,15 @@
+package pkg;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TestClassCast {
+ public void test(List var1) {
+ Object var2 = var1;
+ if(var1 != null) {
+ ((List)(var2 = new ArrayList(var1))).add("23");
+ }
+
+ System.out.println(((List)var2).size());
+ }
+}
diff --git a/testData/src/pkg/TestClassCast.java b/testData/src/pkg/TestClassCast.java
new file mode 100644
index 0000000..a831e54
--- /dev/null
+++ b/testData/src/pkg/TestClassCast.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2000-2014 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.util.*;
+
+public class TestClassCast {
+ public void test(List list) {
+ List a = list;
+ if (a != null) {
+ (a = new ArrayList(a)).add("23");
+ }
+ System.out.println(a.size());
+ }
+} \ No newline at end of file