src/share/classes/com/sun/tools/javac/main/JavaCompiler.java
Print this page
@@ -361,10 +361,11 @@
log.error("cant.access", ex.sym, ex.getDetailValue());
if (ex instanceof ClassReader.BadClassFile)
throw new Abort();
}
source = Source.instance(context);
+ Target target = Target.instance(context);
attr = Attr.instance(context);
chk = Check.instance(context);
gen = Gen.instance(context);
flow = Flow.instance(context);
transTypes = TransTypes.instance(context);
@@ -401,10 +402,12 @@
log.warning(LintCategory.OPTIONS, "source.no.bootclasspath", source.name);
}
}
}
+ checkForObsoleteOptions(target);
+
verboseCompilePolicy = options.isSet("verboseCompilePolicy");
if (attrParseOnly)
compilePolicy = CompilePolicy.ATTR_ONLY;
else
@@ -430,10 +433,30 @@
if (options.isUnset("oldDiags"))
log.setDiagnosticFormatter(RichDiagnosticFormatter.instance(context));
}
+ private void checkForObsoleteOptions(Target target) {
+ // Unless lint checking on options is disabled, check for
+ // obsolete source and target options.
+ boolean obsoleteOptionFound = false;
+ if (options.isUnset(XLINT_CUSTOM, "-" + LintCategory.OPTIONS.option)) {
+ if (source.compareTo(Source.JDK1_5) <= 0) {
+ log.warning(LintCategory.OPTIONS, "option.obsolete.source", source.name);
+ obsoleteOptionFound = true;
+ }
+
+ if (target.compareTo(Target.JDK1_5) <= 0) {
+ log.warning(LintCategory.OPTIONS, "option.obsolete.target", source.name);
+ obsoleteOptionFound =true;
+ }
+
+ if (obsoleteOptionFound)
+ log.warning(LintCategory.OPTIONS, "option.obsolete.suppression");
+ }
+ }
+
/* Switches:
*/
/** Verbose output.
*/