RFR JDK-8194764: javac incorrectly flags deprecated for removal imports

Jan Lahoda jan.lahoda at oracle.com
Thu Jan 25 17:44:30 UTC 2018


Hi,

For a sample code like:
--- D.java
package a;

@Deprecated(forRemoval=true)
public class D {}
---A.java
package a;

import a.D;

public class A {
     public static void main(String[] args) {
         D d;
     }
}
---

When javac is invoked (on JDK 10+) with -source 9, there is an incorrect 
deprecation warning on import (this warning should not be printed, and 
was not printed on JDK 9):
---
$ javac -source 9 D.java A.java
warning: [options] bootstrap class path not set in conjunction with 
-source 9
A.java:3: warning: [removal] D in a has been deprecated and marked for 
removal
import a.D;
         ^
A.java:7: warning: [removal] D in a has been deprecated and marked for 
removal
         D d;
         ^
3 warnings
---

This appears to be caused by small mistake that enabled deprecation 
warnings for source levels up to 9, inclusive, while it should be 
enabled only for source levels up to 8, inclusive.

Proposed webrev: http://cr.openjdk.java.net/~jlahoda/8194764/webrev.00/
Bug: https://bugs.openjdk.java.net/browse/JDK-8194764

How does this look?

Thanks,
     Jan


More information about the compiler-dev mailing list