History log of /external/desugar/java/com/google/devtools/common/options/OptionsData.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f0e9f231407cfe9a9c40589ef57c42043832d44d 17-Oct-2017 ccalvarin <ccalvarin@google.com> Remove feature to allow expansion flags to have values.

It was added as a potential fix for --config (an expansion flag with values), but this would have required forcing the parser to know the config's expansions at parsing time, which is not currently possible. Instead, we will use the new addition of option-location tracking to make sure we expand options at a the correct place, even if the expansion is triggered after the fact.

This is mostly a straight forward undoing of https://github.com/bazelbuild/bazel/commit/7c7255ec8d6da20526c2c4078c57aadaf3dd3612, except where the context has changed. Notably, implicit requirements are effectively treated like expansion flags, so special casing in OptionDescription could be removed.

RELNOTES: None.
PiperOrigin-RevId: 172514997
GitOrigin-RevId: 34a9fea78f201caed8ace5c714a0cf288cb97c65
Change-Id: Ic26df46a5ff16f3b6dd89616ef9fcbe9a7971fa6
/external/desugar/java/com/google/devtools/common/options/OptionsData.java
195dd40824457bb0b3b934ec2c14ab36840f1ff0 16-Oct-2017 ccalvarin <ccalvarin@google.com> Track Option placement within a priority category.

An option has precedence over previous options at the same enum-valued priority. Track its placement in this ordering explicitly.

This will allow after-the-fact expansion of expansion options such that they correctly take precedence or not compared to other mentions of the same flag. This is needed to fix --config's expansion.

RELNOTES: None.
PiperOrigin-RevId: 172367996
GitOrigin-RevId: 7cd9e883dd31f54cd505844aa1f1e0ed7bd9f380
Change-Id: Ia0c09601ac24ffceb31e47b9113a636849c9b2f4
/external/desugar/java/com/google/devtools/common/options/OptionsData.java
791d192ce568d516ec0863ff5b89f49f7e1423bf 08-Sep-2017 ccalvarin <ccalvarin@google.com> Options with oldNames will no longer get reported twice in the effective option lists.

Tracking the names together for option identification was useful, but then the same list was being used as the source of options for the parser, which lead to some options being listed twice.

Also complete a few tests that should have already been tested in different orders.

PiperOrigin-RevId: 168024719
GitOrigin-RevId: 80399bc14ced39936ef19a20f3b8c2d1536aa6c2
Change-Id: Id2d7edfcace3f21b9ed4997fc9b94e4c39731a4a
/external/desugar/java/com/google/devtools/common/options/OptionsData.java
c42002af401b796da5ae16cc0b89299d550585c3 05-Sep-2017 ccalvarin <ccalvarin@google.com> Expansion flags need some restraints.

How expanding flags interact with other possible flag qualities is not defined. Should repeated values have effects multiple times and accumulate? This doesn't really make sense, expansion flags don't have values that would accumulate. For this reason, don't allow expansion options to have allowMultiple set to true.

Likewise for other behaviors.

PiperOrigin-RevId: 167580641
GitOrigin-RevId: 5b79925cc00396329fef9ba447cc45fc1bdf39a8
Change-Id: I815d05b4d4ecd1a21028242903cb8c266a6472a8
/external/desugar/java/com/google/devtools/common/options/OptionsData.java
dfb8518e3845f1dbdd1b7dfada2e682c9dff6b02 22-Aug-2017 ccalvarin <ccalvarin@google.com> Add OptionDefinition layer between the @Option annotation and its fields and the options parser.

Removes any direct reads of the annotation outside of OptionDefinition. This allows for fewer manual checks for the annotation's existence, unifies error wording, and paves the way for potentially generifying the OptionsParser to accept different @Option-equivalent annotations.

Also allows for cleanup of duplicate code by giving @Option-specific operations a clear home, such as sorts and default logic. In followup changes, we can eliminate some unnecessarily complex caching by instead memoizing values in the OptionDefinition. This will have the positive side effect of making sure reads come from the cached values.

RELNOTES: None.
PiperOrigin-RevId: 166019075
GitOrigin-RevId: e8aae03888a44ee8d5264c3d8f6b3adaeb830df5
Change-Id: Ie5ffe0c1983e89885a2bfcab8cf7565790f396fd
/external/desugar/java/com/google/devtools/common/options/OptionsData.java
d3e2fe7e789410217555e07de7200eb232ecdab4 09-Aug-2017 Jonathan Bluett-Duncan <jbluettduncan@gmail.com> Polishing

- Use Java 8 idioms more consistently.
- Use newer Guava idioms more consistently.
- Apply some IntelliJ IDEA refactoring suggestions.
- Other changes made for readability and/or brevity.

Closes #3462.

PiperOrigin-RevId: 164700946
GitOrigin-RevId: 0df3ddbdc289af97ffd2fb98197548f21b2c69a9
Change-Id: Ia18bac5af262592416cd560c60653c545b778882
/external/desugar/java/com/google/devtools/common/options/OptionsData.java
3d23220776fbf3dcd4fb1aa7e2cc0c208bb4e7db 27-Jun-2017 Googler <noreply@google.com> Allow expansion flags to have values.

This lets us change what it expands based on the argument passed to the flag.

RELNOTES: Allows flags that expand to take values.
PiperOrigin-RevId: 160298412
GitOrigin-RevId: 7c7255ec8d6da20526c2c4078c57aadaf3dd3612
Change-Id: I4e6d8d79a13ea89329d52280958122fa01e91872
/external/desugar/java/com/google/devtools/common/options/OptionsData.java
4261bf7ba5deeee4ec8034be1d5055cdebc1b73c 07-Jun-2017 Googler <noreply@google.com> Use ImmutableList for Option expansion functions

RELNOTES: None
PiperOrigin-RevId: 158279811
GitOrigin-RevId: 69faad021dcf65d8f1967f26808c10f9f949ed7e
Change-Id: I6f7b151936734e3efe457aab3d62188791b58ad5
/external/desugar/java/com/google/devtools/common/options/OptionsData.java
172122c125f4b4b3eb402b0d5606a7862a28fd47 22-Mar-2017 Jon Brandvein <brandjon@google.com> Add expansion functions to options parser

This provides a way to programmatically define expansions of options based on what other options are defined for the parser. In particular, it will be used for the --incompatible_* changes mechanism, to turn on all incompatible change flags.

Expansion functions are specified in the @Option annotation, similar to converters. They are computed when an OptionsParser is constructed, and inspect a preliminary version of its OptionsData to determine the expansion result. This is then cached in the final OptionsData used by the parser.

Expansion information for usage strings is available, but only when the usage strings are obtained via the parser.

--
PiperOrigin-RevId: 150817553
MOS_MIGRATED_REVID=150817553

GitOrigin-RevId: 22d261c21748fba31797f0de8bd98fb2ff2fd2f5
Change-Id: Iec0d628fbf873b2b3d7fb7f4c86ad809f9955dbb
/external/desugar/java/com/google/devtools/common/options/OptionsData.java
0c23cbe005a84a9c4cccbcf527c415835e3df3d0 17-Mar-2017 Jon Brandvein <brandjon@google.com> Refactor options converter logic

Moved default converters from parser implementation to Converters. Moved other helpers to OptionsData. Also factored out new function getFieldSingularType.

--
PiperOrigin-RevId: 150473455
MOS_MIGRATED_REVID=150473455

GitOrigin-RevId: 097e64c412c6a4162a22880fd435ef4632878406
Change-Id: Ife5702b6f39415a7df3fd8b44c1867145a6ac466
/external/desugar/java/com/google/devtools/common/options/OptionsData.java
f0388b556ff302c1fd7d90395150126fe952e100 29-Apr-2016 Nathan Harmata <nharmata@google.com> Memoize the OptionsData per BlazeCommand.

This saves the cost of (1) collecting all Options classes and (2) getting all their @Option annotations. Note that there is no savings on reflection costs, since that's already memoized internally by OptionsParser.

This saves ~250us per Blaze invocation.

--
MOS_MIGRATED_REVID=121153156

GitOrigin-RevId: 19350de0caaafbe3c6800c09d520d3ced82d87f9
Change-Id: I2a8d75a74d564b70c39471a53fc2b7d29e268285
/external/desugar/java/com/google/devtools/common/options/OptionsData.java
66c16197f2db59ec8b9ba3d9998a3368ad08d0ec 20-Apr-2016 Luis Fernando Pino Duque <lpino@google.com> Delete the defaultMultipleValue field from options and refactor the logic for retrieving
the default values of options.

The field defaultMultipleValue was introduced in commit 51a491b89a9cd5f15c9a093a5693bc37e696e6e1 to allow defining a
default value for options that set allowMultiple. However due to the limitations of
the optionsParser end up being not useful since we cannot guarantee that an option
that allows multiple has a converter that returns a list of values.
Thus this CL deletes code that may confuse even more and clarifies the mechanism
that the options currently use to obtain their default values.

--
MOS_MIGRATED_REVID=120317261

GitOrigin-RevId: 31162bcf061cd58a5db628f51f3da5d7d43b7829
Change-Id: I31bd9714bb3950017453e24cc0ba37e5d7af94d1
/external/desugar/java/com/google/devtools/common/options/OptionsData.java
08c36eed55e099af808e98e28d1ede2acafdeb3f 18-Mar-2016 Luis Fernando Pino Duque <lpino@google.com> Add a new field to options called defaultMultipleValue which enables setting default values for
flags whose allowMultiple is true.

The behavior is the following:
- If allowMultiple is false then behave as previously.
- Otherwise for retrieving the default we now look at defaultMultipleValue instead of defaultValue and
in the process it will apply the converter to each element. If no defaultMultipleValue is specified
then the default value will be an empty list.

--
MOS_MIGRATED_REVID=117558645

GitOrigin-RevId: 51a491b89a9cd5f15c9a093a5693bc37e696e6e1
Change-Id: I67b29e8ac94fb7ce5e6b72bfcf1383e2453cc29c
/external/desugar/java/com/google/devtools/common/options/OptionsData.java
aa4aa3eb37e7c2d75615a9510499203af107286f 21-Oct-2015 Alex Humesky <ahumesky@google.com> Adds an oldName attribute and a wrapperOption attribute to the @Option annotation for the options parser. oldName indicates the old name for the option, and the option will be parsed under both name and oldName. wrapperOption indicates that the option is a wrapper for other options. For example, in "--foo=--bar=baz", --foo wraps --bar=baz. With wrapperOption set to true for --foo, the options parser will "unwrap" --bar=baz and parse them as top-level flags.

--
MOS_MIGRATED_REVID=105924412

GitOrigin-RevId: 5f7e63e72a8843660e9e79d2afe994abee405bb1
Change-Id: I3b2b4bdf4b9306fb37d82e96536a0c28081fe75a
/external/desugar/java/com/google/devtools/common/options/OptionsData.java
639ceefbac67dceb84cc1df1199f848ed167fea0 29-Sep-2015 Alex Humesky <ahumesky@google.com> Adds a mechanism for invocation policy. The policy is taken through the --invocation_policy startup flag and allows an application invoking Bazel to set or override flag values (whether from the command line or a bazelrc).

--
MOS_MIGRATED_REVID=104160290

GitOrigin-RevId: 2f3f4cf925a760019fd089dd5ee771a3552fb278
Change-Id: Iaab02e38d4c221d2184112f2d9e079058604a5f9
/external/desugar/java/com/google/devtools/common/options/OptionsData.java
9808faf78deb962e7cced3d1abf517b0bb5ac9fc 25-Sep-2015 Damien Martin-Guillerez <dmarting@google.com> Rationalize copyright headers

The headers were modified with
`find . -type f -exec 'sed' '-Ei' 's|Copyright 201([45]) Google|Copyright 201\1 The Bazel Authors|' '{}' ';'`
And manual edit for not Google owned copyright. Because of the nature of ijar, I did not modified the header of file owned by Alan Donovan.

The list of authors were extracted from the git log. It is missing older Google contributors that can be added on-demand.

--
MOS_MIGRATED_REVID=103938715

GitOrigin-RevId: f88f4d81acead9ef3e2f73d9a44afd76c2c239c1
Change-Id: I24bf6dcdbf1c77ea6ae5eaef65072ec9727d6fb7
/external/desugar/java/com/google/devtools/common/options/OptionsData.java
e3f722934d1544379bd385e3053d515d3763095c 09-Apr-2015 Damien Martin-Guillerez <dmarting@google.com> Added an help command to dump all options for completion

`bazel help completion` dump all options completion pattern
for each command, giving hints on the format of the completion
residue (e.g., `label`, `path`, `{a,enum}`, ...). This
dump can be used to generate completion scripts.

--
MOS_MIGRATED_REVID=90743024

GitOrigin-RevId: 29728d4c37721aa88621a8578a7c2d7bfe8b5c68
Change-Id: Id4ce5e3f3efa0b8c4e70a77e5fa745d3e978efe5
/external/desugar/java/com/google/devtools/common/options/OptionsData.java