aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/syntax
Commit message (Collapse)AuthorAge
* Add debugging helper to Environment.Extension to say why something's unequalGravatar brandjon2018-02-06
| | | | | RELNOTES: None PiperOrigin-RevId: 184649483
* Expose structField callable methods of skylark objects to dir() and str() callsGravatar cparsons2018-02-05
| | | | | RELNOTES: None. PiperOrigin-RevId: 184498836
* Fix string_list_dict values to be skylark lists in all casesGravatar cparsons2018-01-31
| | | | | RELNOTES: None. PiperOrigin-RevId: 184016150
* Add serialization codec for SkylarkImports. This is needed to serialize ↵Gravatar janakr2018-01-18
| | | | | | | | SkylarkAspectLoadingKey. Also add a @VisibleForSerialization annotation to @AutoCodec, since we're going to need to increase serialization visibility a lot here, and clean up some unnecessary modifiers. PiperOrigin-RevId: 182389162
* Fix forbidding of If statements in BUILD filesGravatar brandjon2018-01-17
| | | | | | | | | The bug also permitted For statements in BUILD files so long as they were contained within an If statement (i.e. not at the top level). Also add minor guidance to error messages. RELNOTES: None PiperOrigin-RevId: 182236172
* Codec for Location.Gravatar shahan2018-01-16
| | | | | | * Moves SingletonCodec to third_party. PiperOrigin-RevId: 182143153
* Fix value collision in builtins registryGravatar brandjon2018-01-16
| | | | | | | If two values compared equal (e.g., MethodLibrary#bool and SkylarkAttr#bool), we were dropping one of them in favor of the other. RELNOTES: None PiperOrigin-RevId: 182057611
* Fix testPlusEqualsOnDictGravatar vladmos2018-01-02
| | | | | | | The said test fails if the --incompatible_disallow_dict_plus flag is flipped by default (e.g. in a .bazelrc file) PiperOrigin-RevId: 180553910
* Rename some ClassObject/Provider-related methodsGravatar brandjon2017-12-28
| | | | | | | The terminology "field" is preferred over "key" for the components of a struct or struct-like object. RELNOTES: None PiperOrigin-RevId: 180269374
* Correct typos found by the linter.Gravatar gregce2017-12-20
| | | | PiperOrigin-RevId: 179748374
* Remove the --incompatible_list_plus_equals_inplace flagGravatar vladmos2017-12-08
| | | | | | | | RELNOTES[INC]: The flag --incompatible_list_plus_equals_inplace is removed, its default behavior is preserved. += on lists now always mutates the left hand side. PiperOrigin-RevId: 178359047
* Register builtins with RuntimeGravatar brandjon2017-12-07
| | | | | | | | | | | This covers all builtins in classes that use SkylarkSignatureProcessor#configureSkylarkFunctions. Generally this means things you define with @SkylarkSignature. It is now an error to call configureSkylarkFunctions multiple times for the same class. It should only be called in static initializers. Runtime's static knowledge of builtins has been factored into Runtime.BuiltinRegistry. RELNOTES: None PiperOrigin-RevId: 178295926
* New flag `--incompatible_depset_union` to disable old-style depset merging.Gravatar laurentlb2017-12-07
| | | | | | | RELNOTES: Using `+`, `|` or `.union` on depsets is now deprecated. Please use the new constructor instead (see https://docs.bazel.build/versions/master/skylark/depsets.html). PiperOrigin-RevId: 178262338
* Update tests to use the label-based load() syntax.Gravatar laurentlb2017-11-30
| | | | | RELNOTES: None. PiperOrigin-RevId: 177487913
* Migrate some Skylark tests outside of Blaze.Gravatar laurentlb2017-11-28
| | | | | RELNOTES: None PiperOrigin-RevId: 177169878
* Migrate some Skylark tests outside of Blaze.Gravatar laurentlb2017-11-27
| | | | | RELNOTES: None. PiperOrigin-RevId: 177004853
* Remove the deprecated set constructor from SkylarkGravatar vladmos2017-11-21
| | | | | | | | | | | | The `set` constructor used to be deprecated, but it was still possible to use it by providing --incompatible_disallow_set_constructor=false. It's still allowed to have `set` in parts of the code that are not executed, this will be deprecated later. You can check if your code is compatible with this future change by using the flag --incompatible_disallow_uncalled_set_constructor (currently the default is "false"). RELNOTES[INC]: The flag --incompatible_disallow_set_constructor is no longer available, the deprecated `set` constructor is not available anymore. PiperOrigin-RevId: 176491641
* Remove the deprecated set constructor from SkylarkGravatar vladmos2017-11-20
| | | | | | | | | | | | | The `set` constructor used to be deprecated, but it was still possible to use it by providing --incompatible_disallow_set_constructor=false. It's still allowed to have `set` in parts of the code that are not executed, this will be deprecated later. RELNOTES[INC]: The deprecated `set` constructor is removed, along with the migration flag --incompatible_disallow_set_constructor. It is still temporarily allowed to refer to `set` from within unexecuted code. PiperOrigin-RevId: 176375859
* Break dependency on vfs from the interface of syntax and cmdline.Gravatar tomlu2017-11-06
| | | | | | | | These libs are exposed externally, implying that the vfs is also exposed externally. We break out PathFragment from vfs to still use this in their interface. This class is a much smaller dependency than the entire vfs. PiperOrigin-RevId: 174729373
* Parser: fix incorrect end location for statement suites.Gravatar fzaiser2017-10-24
| | | | | | | This used to be annoying for Skylint. RELNOTES: none PiperOrigin-RevId: 173249428
* Preserve `pass` statements in the Skylark AST.Gravatar fzaiser2017-10-23
| | | | | RELNOTES: none PiperOrigin-RevId: 173125138
* Automated rollback of commit 1b98de65873054b148ced772cfa827a7bfb5ad9a.Gravatar dslomov2017-10-23
| | | | | | | | | | | | | | | | | | | *** Reason for rollback *** If the 'set' function was used in a .bzl file but not called, --incompatible_disallow_set_constructor=True would allow the load of that .bzl file without error, but this change removes the 'set' function so loading that bzl file is an error. Example failure: https://ci.bazel.io/blue/organizations/jenkins/Global%2FTensorFlow/detail/TensorFlow/245/pipeline/ *** Original change description *** Remove the deprecated set constructor from Skylark The `set` constructor used to be deprecated, but it was still possible to use it by providing --incompatible_disallow_set_constructor=false. RELNOTES[INC]: The flag --incompatible_disallow_set_constructor is no longer available, the deprecated `set` constructor is not available anymore. PiperOrigin-RevId: 173115983
* Add test for recursive function callsGravatar brandjon2017-10-23
| | | | | RELNOTES: None PiperOrigin-RevId: 173048992
* Require semantics field for Environment.BuilderGravatar brandjon2017-10-23
| | | | | | | Follow-up of unknown commit. RELNOTES: None PiperOrigin-RevId: 172922507
* Be explicit about semantics of Skylark environmentsGravatar brandjon2017-10-23
| | | | | | | | | All callers that do not use Environment.Builder#setSemantics should call #useDefaultSemantics. A follow-up CL will enforce this requirement. Motivation: It's more important that we are strict about semantics than about the other builder args. It's too easy for a mistake in semantics to go unnoticed. RELNOTES: None PiperOrigin-RevId: 172912829
* Optimize trusted MutableList constructionGravatar michajlo2017-10-18
| | | | | | | | | | | | Cuts back a lot of unnecessary copying. All construction is funneled through copyOf and wrapUnsafe. copyOf is the traditional construction mechanism, taking defensive copies of the input and determining if GlobList information needs to be retained. wrapUnsafe takes full ownership of the supplied ArrayList, allowing us to skip a lot of copies in trusted situations. This is particularly useful for common built in functions which return a list, range() being one common example. RELNOTES: None PiperOrigin-RevId: 172361367
* Move min/max tests to new test suiteGravatar laurentlb2017-10-16
| | | | | RELNOTES: None. PiperOrigin-RevId: 172325367
* Remove the deprecated set constructor from SkylarkGravatar vladmos2017-10-13
| | | | | | | | | | The `set` constructor used to be deprecated, but it was still possible to use it by providing --incompatible_disallow_set_constructor=false. RELNOTES[INC]: The flag --incompatible_disallow_set_constructor is no longer available, the deprecated `set` constructor is not available anymore. PiperOrigin-RevId: 171962361
* Remove deprecated legacy string representations of Skylark objectsGravatar vladmos2017-10-13
| | | | | | | | RELNOTES[INC]: The flag --incompatible_descriptive_string_representations is no longer available, old style string representations of objects are not supported anymore. PiperOrigin-RevId: 171952621
* Fix the location of load statements in Skylark.Gravatar fzaiser2017-10-10
| | | | | | | Previously, the closing parenthesis was not included in the location. RELNOTES: none PiperOrigin-RevId: 171527078
* Migrate from deprecated MutableList constructor to copyOf, fixing bug in latterGravatar michajlo2017-10-06
| | | | PiperOrigin-RevId: 171176871
* Skylark parser: make the end position of location ranges inclusive.Gravatar fzaiser2017-10-06
| | | | | | | | | Previously, the end line and column of a location were the position past the actual end of a location. This makes sense for the end offset, because one can use `input.substring(startOffset, endOffset)` to get the string belonging to an ASTNode. However the line and column (as opposed to the offset) aren't used for that. Therefore I made the change that the end line and column now point to the last character in the location. This is also they way every compiler I know does it. RELNOTES: none PiperOrigin-RevId: 170723732
* New depset() APIGravatar dslomov2017-09-29
| | | | | | | | | | | | | `depset` constructor has new arguments, `direct` and `transitive`. `items` argument is deprecated and after its removal `direct` will become a sole positional argument. If `transitive` and `items` are specified, `items` must be a list of direct elements. In the absence of `transitive` the value of `items` can also be a depset, but that behavior is deprecated. RELNOTES: New depset API PiperOrigin-RevId: 170346194
* Clarify Mutability invariants, refactor some testsGravatar brandjon2017-09-29
| | | | | RELNOTES: None PiperOrigin-RevId: 170343759
* Fix end offset of expressions in Skylark parserGravatar fzaiser2017-09-26
| | | | | | | | | | | | | This CL doesn't fix all of the problems. The end location of blocks after an if, elif, else and for is still wrong. (I added TODOs for them) The latter is not easy to fix: One might think that one could just set the end location of a block to the end location of the last statement. However, if the last statement is a "pass" statement, this is not preserved in the AST, in particular, there's no location for it. In the future, we probably want to preserve "pass" statements. RELNOTES: none PiperOrigin-RevId: 170028466
* Add a test for traceback correctness for errors in augmented assignment nodesGravatar vladmos2017-09-26
| | | | PiperOrigin-RevId: 169942209
* Check parameter types for methods when multiple types are allowed.Gravatar Dmitry Lomov2017-09-25
| | | | | | | | | | | | | | | Relanding https://github.com/bazelbuild/bazel/commit/17214ac78ffaec369d5d5bafe62a39730473cfaa with fixes to 'repository_ctx.download()' and 'repository_ctx.download_and_extract()'. I reviewed other usages of @ParamType annotation - I do not think there are more issues. Fixes #3714. Change-Id: I17087ef3fc2d28ab99224740a2164675a49847d3 PiperOrigin-RevId: 169896223
* Improve style in SkylarkMutableTestGravatar brandjon2017-09-25
| | | | | RELNOTES: None PiperOrigin-RevId: 169676866
* Automated rollback of commit 17214ac78ffaec369d5d5bafe62a39730473cfaa.Gravatar dslomov2017-09-22
| | | | | | | | | | | | | | | | | | *** Reason for rollback *** Rolled back commit enforces stricter parameter checks. Will fix and roll forward This creates several failures on the nightly build of Bazel: ERROR: /home/ci/workspace/Global/rules_closure-node=linux-x86_64/closure/protobuf/test/BUILD:23:1: no such package '@com_google_protobuf_protoc//': Cannot convert parameter 'url' to type string or sequence of strings, in method download_and_extract(List, string, string, string, string) of 'repository_ctx' and referenced by '//closure/protobuf/test:example_proto_gen'. ERROR: Analysis of target '//closure/protobuf/test:example_lib' failed; build aborted: no such package '@com_google_protobuf_protoc//': Cannot convert parameter 'url' to type string or sequence of strings, in method download_and_extract(List, string, string, string, string) of 'repository_ctx'. *** Original change description *** Check parameter types for methods when multiple types are allowed. Fixes #3714 RELNOTES: None. PiperOrigin-RevId: 169669802
* Check parameter types for methods when multiple types are allowed.Gravatar dslomov2017-09-20
| | | | | | Fixes #3714 RELNOTES: None. PiperOrigin-RevId: 169382686
* Move RuleConfiguredTarget to lib.analysis.configuredtargets.Gravatar gregce2017-09-19
| | | | | | This is a trivial change with a large file footprint. PiperOrigin-RevId: 169169864
* Project reorg: move *ConfiguredTarget to new configuredtargets/ pathGravatar gregce2017-09-18
| | | | | | | Exempt RuleConfiguredTarget in this change because that's liable to touch a billion files. PiperOrigin-RevId: 168929827
* --incompatible_comprehension_variables_do_not_leak defaults to trueGravatar laurentlb2017-09-08
| | | | | | | | RELNOTES[INC]: --incompatible_comprehension_variables_do_not_leak defaults to "true." Iteration variable becomes inaccessible after a list/dict comprehension. PiperOrigin-RevId: 167876119
* Support labels referencing external targets (with '@') in load with ↵Gravatar Kevin Gessner2017-09-07
| | | | | | | | --incompatible_load_argument_is_label enabled (fixes #3560) Closes #3562. PiperOrigin-RevId: 167745885
* incompatible_disallow_keyword_only_args now defaults to trueGravatar laurentlb2017-09-07
| | | | | | | | RELNOTES[INC]: Keyword-only syntax in a function definition is now forbidden e.g. `def foo(a, *, b)` or `def foo(a, *b, c)` PiperOrigin-RevId: 167741296
* Fix crash when calling int(s, 0) where s doesn't specify the radixGravatar brandjon2017-09-06
| | | | | | | Also distinguish between unspecified base arg and base 10, so "int(True, 10)" is now an error. This is an incompatible change, albeit a small one. RELNOTES: None PiperOrigin-RevId: 167616143
* skylark/syntax: Move flow statement check to the validation pass.Gravatar laurentlb2017-09-04
| | | | | | | Mutiple other cleanups in the parser, update code documentation. RELNOTES: None. PiperOrigin-RevId: 167501136
* Remove testFunctionListArgumentsAreImmutable and ↵Gravatar vladmos2017-09-01
| | | | | | | | | | | testFunctionDictArgumentsAreImmutable These tests don't actually check mutability of objects but behavior of += on them. Input arguments of functions are in fact mutable unless they've been created in another mutability scope. There are already other tests that actually check immutability of objects from another mutability scope. PiperOrigin-RevId: 167295711
* Remove the Dialect type from the Parser.Gravatar laurentlb2017-09-01
| | | | | | | | Let's use the same parser. Dialect differences are checked in a separate validation pass. RELNOTES: None. PiperOrigin-RevId: 167280201
* Fix wrong location of string literals in the lexerGravatar fzaiser2017-09-01
| | | | | RELNOTES: none PiperOrigin-RevId: 167263494