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 Binary files /dev/null and b/testData/classes/pkg/TestClassCast.class 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