aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/syntax/SelectorList.java
Commit message (Collapse)AuthorAge
* Make selector list construction n^2 -> n efficient.Gravatar gregce2017-08-07
| | | | | | | | | | | | | | | On the subject of simpler toString output (i.e. "selector" vs. "selector({dictionary contents here})", I'm not changing that here because there are consistency concerns. BuildType.SelectorList.toString is defined to match lib.syntax.SelectorList's Skylark serialization. That follows a standard pattern defined here: https://github.com/bazelbuild/bazel/blob/67bd6fc6354f2abbbc149fcd0120228b538842d3/src/main/java/com/google/devtools/build/lib/skylarkinterface/SkylarkValue.java#L37 which has concerns about deserialization. If you want to take this further we can discuss with the Skylark devs. PiperOrigin-RevId: 164311511
* Misc cleanups of syntax dirGravatar brandjon2017-07-12
| | | | | RELNOTES: None PiperOrigin-RevId: 161560683
* Make SkylarkValue instances mutable by defaultGravatar vladmos2017-07-11
| | | | | | | | | | Simplify the code by providing the default implementation of `SkylarkValue$isImmutable` that always returns false. All objects are considered mutable unless their `isImmutable` method is overridden. This change doesn't affect the current behavior. PiperOrigin-RevId: 161422029
* Refactor PrinterGravatar vladmos2017-07-03
| | | | | | | It's now easier to customize Printer if in different situations objects should be printed differently. Also its API is cleaner now. Names of methods of SkylarkValue objects now reflect names of Skylark functions: SkylarkValue#repr and SkylarkPrintableValue#str. PiperOrigin-RevId: 160635154
* Make SelectorList.toString() user-friendly.Gravatar gregce2017-06-01
| | | | | | | | This also guarantees consistency between toString() calls to lib.syntax.SelectorList and lib.packages.BuildType.SelectorList. PiperOrigin-RevId: 157617509
* Make SkylarkList a List.Gravatar Francois-Rene Rideau2016-01-22
| | | | | | | | | | | | | | | SkylarkList now implements the List interfaces, except that its mutating methods throw an UnsupportedOperationException, just like ImmutableList does. To actually mutate a SkylarkList, you need to pass a Location and a suitable Environment object with a matching Mutability while it is still active. Introduce SkylarkMutable and SkylarkMutable.MutableCollection to better handle mutable data structures. Remove some functions in EvalUtils made obsolete by this and previous changes regarding Skylark lists. -- MOS_MIGRATED_REVID=112768457
* Improve error message for select objects ('+' operator for incompatible types)Gravatar Laurent Le Brun2015-11-05
| | | | | -- MOS_MIGRATED_REVID=107131704
* Rationalize copyright headersGravatar Damien Martin-Guillerez2015-09-25
| | | | | | | | | | | 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
* Separate build-specific types and types inherent to Skylark.Gravatar Lukacs Berki2015-09-21
| | | | | -- MOS_MIGRATED_REVID=103374106
* Even more select concatenation: this time when a glob is *in*Gravatar Greg Estren2015-05-28
| | | | | | | the select. -- MOS_MIGRATED_REVID=94596318
* Let select concatenation mix Skylark and native listsGravatar Greg Estren2015-05-15
| | | | | | | | | | | (e.g. select({...}) + [list1] + [list2] where list1 is defined in a BUILD file and list2 is defined in a Skylark macro/rule). Fixes #176 -- MOS_MIGRATED_REVID=93633255
* Allow "attr = glob([*]) + select({...})" intermixing inGravatar Greg Estren2015-05-15
| | | | | | | an attribute assignment. -- MOS_MIGRATED_REVID=93460093
* Configurable attributes: support embeddable selects. With thisGravatar Greg Estren2015-04-14
change, the following syntax: deps = [':always'] + select({':a': [':adep'], ':b': [':bdep']}) or deps = select({':a': [':adep'], ':b': [':bdep']}) + select({':c': [':cdep'], ':d': [':ddep']}) works. -- MOS_MIGRATED_REVID=91016337