safe delete: warn about functional expressions

This commit is contained in:
Anna Kozlova
2014-04-07 20:42:08 +02:00
parent cd3eac2159
commit 2a89426bce
4 changed files with 74 additions and 0 deletions
@@ -0,0 +1,11 @@
interface SAM {
void fo<caret>o(int i);
}
class Test {
{
SAM sam = (i) -> {};
}
}
@@ -0,0 +1,11 @@
interface SAM {
void foo(int <caret>i);
}
class Test {
{
SAM sam = (i) -> {};
}
}
@@ -134,6 +134,30 @@ public class SafeDeleteTest extends MultiFileTestCase {
}
}
public void testParameterFromFunctionalInterface() throws Exception {
try {
LanguageLevelProjectExtension.getInstance(getProject()).setLanguageLevel(LanguageLevel.JDK_1_8);
doSingleFileTest();
fail("Conflict was not detected");
}
catch (BaseRefactoringProcessor.ConflictsInTestsException e) {
String message = e.getMessage();
assertEquals("class <b><code>SAM</code></b> has 1 usage that is not safe to delete.", message);
}
}
public void testFunctionalInterfaceMethod() throws Exception {
try {
LanguageLevelProjectExtension.getInstance(getProject()).setLanguageLevel(LanguageLevel.JDK_1_8);
doSingleFileTest();
fail("Conflict was not detected");
}
catch (BaseRefactoringProcessor.ConflictsInTestsException e) {
String message = e.getMessage();
assertEquals("class <b><code>SAM</code></b> has 1 usage that is not safe to delete.", message);
}
}
public void testMethodDeepHierarchy() throws Exception {
doTest("Super");
}