7
7
/**
8
8
* It was encountered once that removing the @Deprecated annotation from an interface field did not remove the warning
9
9
* from the source files in which it was used.
10
+ * <p>
11
+ * It is caused by the deprecated tag being present in the javadoc, but not on the field. Therefore as there is no ABI
12
+ * change, the dependent source files are not recompiled.
10
13
*/
11
14
@ SakerTest
12
15
public class DeprecatedAnnotationRemovalTaskTest extends JavaCompilerVariablesMetricEnvironmentTaskTestCase {
@@ -19,12 +22,24 @@ protected void runNestTaskTestImpl() throws Throwable {
19
22
assertCompiled (MAIN_JAVA_PATH , ITF_JAVA_PATH );
20
23
assertTrue (getMetric ().getAllPrintedTaskLines ().contains (
21
24
"[saker.java.compile:src]src/test/Main.java:5:39-47: Warning: FIELD in test.Itf has been deprecated" ));
25
+ assertTrue (getMetric ().getAllPrintedTaskLines ().contains (
26
+ "[saker.java.compile:src]src/test/Main.java:6:39-51: Warning: DOC_FIELD in test.Itf has been deprecated" ));
22
27
23
- //check if the warning was removed
24
28
files .putFile (ITF_JAVA_PATH , files .getAllBytes (ITF_JAVA_PATH ).toString ().replace ("@Deprecated" , "" ));
25
29
runScriptTask ("build" );
26
30
assertCompiled (MAIN_JAVA_PATH , ITF_JAVA_PATH );
27
31
assertFalse (getMetric ().getAllPrintedTaskLines ().contains (
28
32
"[saker.java.compile:src]src/test/Main.java:5:39-47: Warning: FIELD in test.Itf has been deprecated" ));
33
+ assertTrue (getMetric ().getAllPrintedTaskLines ().contains (
34
+ "[saker.java.compile:src]src/test/Main.java:6:39-51: Warning: DOC_FIELD in test.Itf has been deprecated" ));
35
+
36
+ //TODO Fix this, issue #15 https://github.com/sakerbuild/saker.java.compiler/issues/15
37
+ // files.putFile(ITF_JAVA_PATH, files.getAllBytes(ITF_JAVA_PATH).toString().replace("@deprecated doc_dep", ""));
38
+ // runScriptTask("build");
39
+ // assertCompiled(MAIN_JAVA_PATH, ITF_JAVA_PATH);
40
+ // assertFalse(getMetric().getAllPrintedTaskLines().contains(
41
+ // "[saker.java.compile:src]src/test/Main.java:5:39-47: Warning: FIELD in test.Itf has been deprecated"));
42
+ // assertFalse(getMetric().getAllPrintedTaskLines().contains(
43
+ // "[saker.java.compile:src]src/test/Main.java:6:39-51: Warning: DOC_FIELD in test.Itf has been deprecated"));
29
44
}
30
45
}
0 commit comments