Skip to content

Commit af9aa1f

Browse files
committed
Find out cause of DeprecatedAnnotationRemovalTaskTest, issue #15
1 parent 3f46358 commit af9aa1f

File tree

3 files changed

+22
-3
lines changed

3 files changed

+22
-3
lines changed

main/src/test/testing/saker/java/compiler/tests/tasks/javac/DeprecatedAnnotationRemovalTaskTest.java

+16-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
/**
88
* It was encountered once that removing the @Deprecated annotation from an interface field did not remove the warning
99
* 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.
1013
*/
1114
@SakerTest
1215
public class DeprecatedAnnotationRemovalTaskTest extends JavaCompilerVariablesMetricEnvironmentTaskTestCase {
@@ -19,12 +22,24 @@ protected void runNestTaskTestImpl() throws Throwable {
1922
assertCompiled(MAIN_JAVA_PATH, ITF_JAVA_PATH);
2023
assertTrue(getMetric().getAllPrintedTaskLines().contains(
2124
"[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"));
2227

23-
//check if the warning was removed
2428
files.putFile(ITF_JAVA_PATH, files.getAllBytes(ITF_JAVA_PATH).toString().replace("@Deprecated", ""));
2529
runScriptTask("build");
2630
assertCompiled(MAIN_JAVA_PATH, ITF_JAVA_PATH);
2731
assertFalse(getMetric().getAllPrintedTaskLines().contains(
2832
"[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"));
2944
}
3045
}
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package test;
22

33
public interface Itf {
4-
@Deprecated
5-
int FIELD = 0;
4+
@Deprecated int FIELD = 0;
5+
/**
6+
* @deprecated doc_dep
7+
*/
8+
int DOC_FIELD = 1;
69
}

main/test/resources/testcontents/testing/saker/java/compiler/tests/tasks/javac/DeprecatedAnnotationRemovalTaskTest/src/test/Main.java

+1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
public class Main {
44
public static void main(String[] args) {
55
System.out.println("Main.main() " + Itf.FIELD);
6+
System.out.println("Main.main() " + Itf.DOC_FIELD);
67
}
78
}

0 commit comments

Comments
 (0)