From f737d4f5c2731e6f551494506d350e4a42031b76 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Tue, 13 Mar 2012 17:15:43 +0100 Subject: [PATCH] when abstract method is removed recompile all overriding methods --- .../membersChange/deleteInterfaceMethod.log | 14 + .../deleteInterfaceMethod/.idea/.name | 1 + .../deleteInterfaceMethod/.idea/compiler.xml | 21 ++ .../.idea/copyright/profiles_settings.xml | 5 + .../deleteInterfaceMethod/.idea/encodings.xml | 5 + .../deleteInterfaceMethod/.idea/misc.xml | 70 +++++ .../deleteInterfaceMethod/.idea/modules.xml | 9 + .../.idea/scopes/scope_settings.xml | 5 + .../.idea/uiDesigner.xml | 125 ++++++++ .../deleteInterfaceMethod/.idea/vcs.xml | 7 + .../deleteInterfaceMethod/.idea/workspace.xml | 285 ++++++++++++++++++ .../DeleteInterfaceMethod.iml | 12 + .../deleteInterfaceMethod/Iface.java.new | 2 + .../deleteInterfaceMethod/data.xml | 12 + .../deleteInterfaceMethod/src/Iface.java | 3 + .../deleteInterfaceMethod/src/IfaceImpl.java | 3 + .../deleteInterfaceMethod/src/IfaceImpl2.java | 4 + .../org/jetbrains/ether/MemberChangeTest.java | 4 + .../ether/dependencyView/Mappings.java | 12 +- 19 files changed, 593 insertions(+), 6 deletions(-) create mode 100644 java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod.log create mode 100644 java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/.name create mode 100644 java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/compiler.xml create mode 100644 java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/copyright/profiles_settings.xml create mode 100644 java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/encodings.xml create mode 100644 java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/misc.xml create mode 100644 java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/modules.xml create mode 100644 java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/scopes/scope_settings.xml create mode 100644 java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/uiDesigner.xml create mode 100644 java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/vcs.xml create mode 100644 java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/workspace.xml create mode 100644 java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/DeleteInterfaceMethod.iml create mode 100644 java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/Iface.java.new create mode 100644 java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/data.xml create mode 100644 java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/Iface.java create mode 100644 java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/IfaceImpl.java create mode 100644 java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/IfaceImpl2.java diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod.log b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod.log new file mode 100644 index 000000000000..faa9c5f33499 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod.log @@ -0,0 +1,14 @@ +Cleaning output files: +out/production/DeleteInterfaceMethod/Iface.class +End of files +Compiling files: +src/Iface.java +End of files +Cleaning output files: +out/production/DeleteInterfaceMethod/IfaceImpl.class +out/production/DeleteInterfaceMethod/IfaceImpl2.class +End of files +Compiling files: +src/IfaceImpl.java +src/IfaceImpl2.java +End of files diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/.name b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/.name new file mode 100644 index 000000000000..4f11cb35e8b6 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/.name @@ -0,0 +1 @@ +deleteMethod \ No newline at end of file diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/compiler.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/compiler.xml new file mode 100644 index 000000000000..a1b41c52c724 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/compiler.xml @@ -0,0 +1,21 @@ + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/copyright/profiles_settings.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/copyright/profiles_settings.xml new file mode 100644 index 000000000000..3572571ad83c --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/copyright/profiles_settings.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/encodings.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/encodings.xml new file mode 100644 index 000000000000..e206d70d8595 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/encodings.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/misc.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/misc.xml new file mode 100644 index 000000000000..f22d96b8c6a5 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/misc.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IDEA jdk + + + + + + + + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/modules.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/modules.xml new file mode 100644 index 000000000000..f0aebe91e4fb --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/scopes/scope_settings.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/scopes/scope_settings.xml new file mode 100644 index 000000000000..922003b8433b --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/scopes/scope_settings.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/uiDesigner.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/uiDesigner.xml new file mode 100644 index 000000000000..3b0002030884 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/uiDesigner.xml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/vcs.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/vcs.xml new file mode 100644 index 000000000000..def6a6a18457 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/workspace.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/workspace.xml new file mode 100644 index 000000000000..2ee5148c0911 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/workspace.xml @@ -0,0 +1,285 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + localhost + 5050 + + + + + + + + 1317921967960 + 1317921967960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/DeleteInterfaceMethod.iml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/DeleteInterfaceMethod.iml new file mode 100644 index 000000000000..d5c074327501 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/DeleteInterfaceMethod.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/Iface.java.new b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/Iface.java.new new file mode 100644 index 000000000000..b95f0d5a0f99 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/Iface.java.new @@ -0,0 +1,2 @@ +public interface Iface { +} \ No newline at end of file diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/data.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/data.xml new file mode 100644 index 000000000000..9f7d25766ca5 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/data.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/Iface.java b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/Iface.java new file mode 100644 index 000000000000..a912a31bf0ae --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/Iface.java @@ -0,0 +1,3 @@ +public interface Iface { + void method(); +} \ No newline at end of file diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/IfaceImpl.java b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/IfaceImpl.java new file mode 100644 index 000000000000..29c7c84642a7 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/IfaceImpl.java @@ -0,0 +1,3 @@ +public class IfaceImpl implements Iface { + public void method() {} +} \ No newline at end of file diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/IfaceImpl2.java b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/IfaceImpl2.java new file mode 100644 index 000000000000..20ab73184a22 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/IfaceImpl2.java @@ -0,0 +1,4 @@ +public class IfaceImpl2 implements Iface { + @Override + public void method() {} +} \ No newline at end of file diff --git a/jps/jps-builders/testSrc/org/jetbrains/ether/MemberChangeTest.java b/jps/jps-builders/testSrc/org/jetbrains/ether/MemberChangeTest.java index cfe091f05825..bc3f8a5002bd 100644 --- a/jps/jps-builders/testSrc/org/jetbrains/ether/MemberChangeTest.java +++ b/jps/jps-builders/testSrc/org/jetbrains/ether/MemberChangeTest.java @@ -104,6 +104,10 @@ public class MemberChangeTest extends IncrementalTestCase { doTest(); } + public void testDeleteInterfaceMethod() throws Exception { + doTest(); + } + public void testDeleteMethodImplementation() throws Exception { doTest(); } diff --git a/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java b/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java index 860603820460..e0c6928bb2bf 100644 --- a/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java +++ b/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java @@ -1140,13 +1140,13 @@ public class Mappings { } } - if ((m.access & Opcodes.ACC_ABSTRACT) == 0) { - final Collection> overriding = u.findOverridingMethods(m, it, false); + final Collection> overriding = u.findOverridingMethods(m, it, false); + for (final Pair p : overriding) { + final DependencyContext.S fName = myClassToSourceFile.get(p.second.name); + affectedFiles.add(new File(myContext.getValue(fName))); + } - for (final Pair p : overriding) { - final DependencyContext.S fName = myClassToSourceFile.get(p.second.name); - affectedFiles.add(new File(myContext.getValue(fName))); - } + if ((m.access & Opcodes.ACC_ABSTRACT) == 0) { for (DependencyContext.S p : propagated) { if (!p.equals(it.name)) {