8199194: Add javac support for preview features
Summary: Add support for preview features and related command line options.
Reviewed-by: jjg
#
# Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
## standard options
javac.opt.g=\
Generate all debugging info
javac.opt.g.none=\
Generate no debugging info
javac.opt.g.lines.vars.source=\
Generate only some debugging info
javac.opt.nowarn=\
Generate no warnings
javac.opt.verbose=\
Output messages about what the compiler is doing
javac.opt.deprecation=\
Output source locations where deprecated APIs are used
javac.opt.classpath=\
Specify where to find user class files and annotation processors
javac.opt.modulepath=\
Specify where to find application modules
javac.opt.sourcepath=\
Specify where to find input source files
javac.opt.m=\
Compile only the specified module, check timestamps
javac.opt.modulesourcepath=\
Specify where to find input source files for multiple modules
javac.opt.bootclasspath=\
Override location of bootstrap class files
javac.opt.system=\
Override location of system modules
javac.opt.upgrademodulepath=\
Override location of upgradeable modules
javac.opt.endorseddirs=\
Override location of endorsed standards path
javac.opt.extdirs=\
Override location of installed extensions
javac.opt.processorpath=\
Specify where to find annotation processors
javac.opt.processormodulepath=\
Specify a module path where to find annotation processors
javac.opt.processor=\
Names of the annotation processors to run; bypasses default discovery process
javac.opt.parameters=\
Generate metadata for reflection on method parameters
javac.opt.proc.none.only=\
Control whether annotation processing and/or compilation is done.
javac.opt.d=\
Specify where to place generated class files
javac.opt.sourceDest=\
Specify where to place generated source files
javac.opt.headerDest=\
Specify where to place generated native header files
javac.opt.J=\
Pass <flag> directly to the runtime system
javac.opt.encoding=\
Specify character encoding used by source files
javac.opt.profile=\
Check that API used is available in the specified profile
javac.opt.target=\
Generate class files for specific VM version
javac.opt.release=\
Compile for a specific VM version. Supported targets: {0}
javac.opt.source=\
Provide source compatibility with specified release
javac.opt.Werror=\
Terminate compilation if warnings occur
javac.opt.A=\
Options to pass to annotation processors
javac.opt.implicit=\
Specify whether or not to generate class files for implicitly referenced files
javac.opt.pkginfo=\
Specify handling of package-info files
javac.opt.multi-release=\
Specify which release to use in multi-release jars
javac.opt.arg.class=\
<class>
javac.opt.arg.class.list=\
<class1>[,<class2>,<class3>...]
javac.opt.arg.flag=\
<flag>
javac.opt.arg.key.equals.value=\
key[=value]
javac.opt.arg.path=\
<path>
javac.opt.arg.mspath=\
<module-source-path>
javac.opt.arg.m=\
<module-name>
javac.opt.arg.jdk=\
<jdk>|none
javac.opt.arg.dirs=\
<dirs>
javac.opt.arg.directory=\
<directory>
javac.opt.arg.encoding=\
<encoding>
javac.opt.arg.profile=\
<profile>
javac.opt.arg.release=\
<release>
javac.opt.arg.release=\
<release>
javac.opt.arg.number=\
<number>
javac.opt.plugin=\
Name and optional arguments for a plug-in to be run
javac.opt.arg.plugin=\
"name args"
javac.opt.arg.multi-release=\
<release>
javac.opt.arg.default.module.for.created.files=\
<module-name>
## extended options
javac.opt.maxerrs=\
Set the maximum number of errors to print
javac.opt.maxwarns=\
Set the maximum number of warnings to print
javac.opt.nogj=\
Don't accept generics in the language
javac.opt.moreinfo=\
Print extended information for type variables
javac.opt.printsearch=\
Print information where classfiles are searched
javac.opt.prompt=\
Stop after each error
javac.opt.s=\
Emit java sources instead of classfiles
javac.opt.version=\
Version information
javac.opt.arg.pathname=\
<pathname>
javac.opt.arg.file=\
<filename>
javac.opt.Xbootclasspath.p=\
Prepend to the bootstrap class path
javac.opt.Xbootclasspath.a=\
Append to the bootstrap class path
javac.opt.Xlint=\
Enable recommended warnings
javac.opt.Xlint.all=\
Enable all warnings
javac.opt.Xlint.none=\
Disable all warnings
#L10N: do not localize: -Xlint
javac.opt.arg.Xlint=\
<key>(,<key>)*
javac.opt.Xlint.custom=\
Warnings to enable or disable, separated by comma.\n\
Precede a key by '-' to disable the specified warning.\n\
Supported keys are:
javac.opt.Xlint.desc.auxiliaryclass=\
Warn about an auxiliary class that is hidden in a source file, and is used from other files.
javac.opt.Xlint.desc.cast=\
Warn about use of unnecessary casts.
javac.opt.Xlint.desc.classfile=\
Warn about issues related to classfile contents.
javac.opt.Xlint.desc.deprecation=\
Warn about use of deprecated items.
javac.opt.Xlint.desc.dep-ann=\
Warn about items marked as deprecated in JavaDoc but not using the @Deprecated annotation.
javac.opt.Xlint.desc.divzero=\
Warn about division by constant integer 0.
javac.opt.Xlint.desc.empty=\
Warn about empty statement after if.
javac.opt.Xlint.desc.exports=\
Warn about issues regarding module exports.
javac.opt.Xlint.desc.fallthrough=\
Warn about falling through from one case of a switch statement to the next.
javac.opt.Xlint.desc.finally=\
Warn about finally clauses that do not terminate normally.
javac.opt.Xlint.desc.module=\
Warn about module system related issues.
javac.opt.Xlint.desc.opens=\
Warn about issues regarding module opens.
javac.opt.Xlint.desc.options=\
Warn about issues relating to use of command line options.
javac.opt.Xlint.desc.overloads=\
Warn about issues regarding method overloads.
javac.opt.Xlint.desc.overrides=\
Warn about issues regarding method overrides.
javac.opt.Xlint.desc.path=\
Warn about invalid path elements on the command line.
javac.opt.Xlint.desc.processing=\
Warn about issues regarding annotation processing.
javac.opt.Xlint.desc.rawtypes=\
Warn about use of raw types.
javac.opt.Xlint.desc.removal=\
Warn about use of API that has been marked for removal.
javac.opt.Xlint.desc.requires-automatic=\
Warn about use of automatic modules in the requires clauses.
javac.opt.Xlint.desc.requires-transitive-automatic=\
Warn about automatic modules in requires transitive.
javac.opt.Xlint.desc.serial=\
Warn about Serializable classes that do not provide a serial version ID. \n\
\ Also warn about access to non-public members from a serializable element.
javac.opt.Xlint.desc.static=\
Warn about accessing a static member using an instance.
javac.opt.Xlint.desc.try=\
Warn about issues relating to use of try blocks (i.e. try-with-resources).
javac.opt.Xlint.desc.unchecked=\
Warn about unchecked operations.
javac.opt.Xlint.desc.varargs=\
Warn about potentially unsafe vararg methods
javac.opt.Xlint.desc.preview=\
Warn about use of preview language features
javac.opt.Xdoclint=\
Enable recommended checks for problems in javadoc comments
# L10N: do not localize: all none
javac.opt.Xdoclint.subopts = \
(all|none|[-]<group>)[/<access>]
# L10N: do not localize: accessibility html missing reference syntax
# L10N: do not localize: public protected package private
javac.opt.Xdoclint.custom=\
Enable or disable specific checks for problems in javadoc comments,\n\
where <group> is one of accessibility, html, missing, reference, or syntax,\n\
and <access> is one of public, protected, package, or private.
javac.opt.Xdoclint.package.args = \
[-]<packages>(,[-]<package>)*
javac.opt.Xdoclint.package.desc=\
Enable or disable checks in specific packages. Each <package> is either the\n\
qualified name of a package or a package name prefix followed by '.*', which\n\
expands to all sub-packages of the given package. Each <package> can be prefixed\n\
with '-' to disable checks for the specified package or packages.
javac.opt.doclint.format=\
Specify the format for documentation comments
javac.opt.Xstdout=\
Redirect standard output
javac.opt.X=\
Print help on extra options
javac.opt.help=\
Print this help message
javac.opt.print=\
Print out a textual representation of specified types
javac.opt.printRounds=\
Print information about rounds of annotation processing
javac.opt.printProcessorInfo=\
Print information about which annotations a processor is asked to process
javac.opt.userpathsfirst=\
Search classpath and sourcepath for classes before the bootclasspath instead of after
javac.opt.prefer=\
Specify which file to read when both a source file and class file are found for an implicitly compiled class
javac.opt.preview=\
Enable preview language features. To be used in conjunction with either -source or --release.
javac.opt.AT=\
Read options and filenames from file
javac.opt.diags=\
Select a diagnostic mode
javac.opt.addExports=\
Specify a package to be considered as exported from its defining module\n\
to additional modules, or to all unnamed modules if <other-module> is ALL-UNNAMED.
javac.opt.arg.addExports=\
<module>/<package>=<other-module>(,<other-module>)*
javac.opt.addReads=\
Specify additional modules to be considered as required by a given module.\n\
<other-module> may be ALL-UNNAMED to require the unnamed module.
javac.opt.arg.addReads=\
<module>=<other-module>(,<other-module>)*
javac.opt.patch=\
Override or augment a module with classes and resources\n\
in JAR files or directories
javac.opt.arg.patch=\
<module>=<file>(:<file>)*
javac.opt.addmods=\
Root modules to resolve in addition to the initial modules, or all modules\n\
on the module path if <module> is ALL-MODULE-PATH.
javac.opt.arg.addmods=\
<module>(,<module>)*
javac.opt.limitmods=\
Limit the universe of observable modules
javac.opt.arg.limitmods=\
<module>(,<module>)*
javac.opt.module.version=\
Specify version of modules that are being compiled
javac.opt.arg.module.version=\
<version>
javac.opt.inherit_runtime_environment=\
Inherit module system configuration options from the runtime environment.
javac.opt.default.module.for.created.files=\
Fallback target module for files created by annotation processors, if none specified or inferred.
## errors
javac.err.empty.A.argument=\
-A requires an argument; use ''-Akey'' or ''-Akey=value''
javac.err.invalid.arg=\
invalid argument: {0}
javac.err.invalid.A.key=\
key in annotation processor option ''{0}'' is not a dot-separated sequence of identifiers
javac.err.invalid.flag=\
invalid flag: {0}
javac.err.profile.bootclasspath.conflict=\
profile and bootclasspath options cannot be used together
javac.err.invalid.profile=\
invalid profile: {0}
javac.err.invalid.target=\
invalid target release: {0}
javac.err.option.not.allowed.with.target=\
option {0} not allowed with target {1}
javac.err.option.too.many=\
option {0} can only be specified once
javac.err.no.source.files=\
no source files
javac.err.no.source.files.classes=\
no source files or class names
javac.err.req.arg=\
{0} requires an argument
javac.err.invalid.source=\
invalid source release: {0}
javac.err.error.writing.file=\
error writing {0}; {1}
javac.err.sourcepath.modulesourcepath.conflict=\
cannot specify both --source-path and --module-source-path
javac.warn.source.target.conflict=\
source release {0} requires target release {1}
javac.warn.target.default.source.conflict=\
target release {0} conflicts with default source release {1}
javac.warn.profile.target.conflict=\
profile {0} is not valid for target release {1}
javac.err.preview.not.latest=\
invalid source release {0} with --enable-preview\n\
(preview language features are only supported for release {1})
javac.err.preview.without.source.or.release=\
--enable-preview must be used with either -source or --release
javac.err.file.not.found=\
file not found: {0}
javac.err.file.not.directory=\
not a directory: {0}
javac.err.file.not.file=\
not a file: {0}
javac.err.two.class.loaders.1=\
javac is split between multiple class loaders: check your configuration
javac.err.two.class.loaders.2=\
javac is split between multiple class loaders:\n\
one class comes from file: {0}\n\
while javac comes from {1}
javac.err.bad.value.for.option=\
bad value for {0} option: ''{1}''
javac.err.no.value.for.option=\
no value for {0} option
javac.err.repeated.value.for.patch.module=\
--patch-module specified more than once for {0}
javac.err.unmatched.quote=\
unmatched quote in environment variable %s
## messages
javac.msg.usage.header=\
Usage: {0} <options> <source files>\n\
where possible options include:
javac.msg.usage=\
Usage: {0} <options> <source files>\n\
use --help for a list of possible options
javac.msg.usage.nonstandard.footer=\
These extra options are subject to change without notice.
javac.msg.bug=\
An exception has occurred in the compiler ({0}). \
Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) \
after checking the Bug Database (http://bugs.java.com) for duplicates. \
Include your program and the following diagnostic in your report. Thank you.
javac.msg.io=\
\n\nAn input/output error occurred.\n\
Consult the following stack trace for details.\n
javac.msg.proc.annotation.uncaught.exception=\
\n\nAn annotation processor threw an uncaught exception.\n\
Consult the following stack trace for details.\n
javac.msg.plugin.uncaught.exception=\
\n\nA plugin threw an uncaught exception.\n\
Consult the following stack trace for details.\n
javac.msg.resource=\
\n\nThe system is out of resources.\n\
Consult the following stack trace for details.\n
javac.version={0} {1}
javac.fullVersion={0} full version "{1}"
javac.err.release.bootclasspath.conflict=\
option {0} cannot be used together with --release
javac.err.unsupported.release.version=\
release version {0} not supported