| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 165422514
|
|
|
|
|
|
|
|
| |
This allows more complex expressions to be called, not just identifiers.
For example, "x[0]()" is not a syntax error anymore.
RELNOTES: None
PiperOrigin-RevId: 165157981
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 164981071
|
|
|
|
|
| |
RELNOTES: The `print` function now prints debug messages instead of warnings.
PiperOrigin-RevId: 164880003
|
|
|
|
|
|
|
|
|
| |
Old ordering names ("stable", "compile", "naive_link", "link") are deprecated
and won't be available if --incompatible_disallow_set_constructor=true is set.
Use "default", "postorder", "preorder", and "topological" correspondingly
instead.
PiperOrigin-RevId: 164728439
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 164481927
|
|
|
|
|
|
|
| |
I.e., ('a', 'b') * 3 == ('a', 'b', 'a', 'b', 'a', 'b'), like lists.
RELNOTES: None
PiperOrigin-RevId: 164403099
|
|
|
|
|
|
|
|
|
| |
Previously, you could modify a frozen MutableList indirectly via its iterator(). This CL wraps the underlying list with a Collections.unmodifiableList when obtaining the iterator, and likewise for other methods that return views over Skylark data structures.
This also eliminates the SkylarkList#getContents method in favor of just using the SkylarkList object itself.
RELNOTES: None
PiperOrigin-RevId: 164402129
|
|
|
|
|
|
|
|
|
| |
Also throw IllegalArgumentException instead of AssertionError.
A follow-up CL will look to eliminate the SkylarkMutable#checkMutable(Location, Environment) override in favor of checkMutable(Location, Mutability). This will make it easier to manipulate Skylark values in specialized contexts aside from normal evaluation.
RELNOTES: None
PiperOrigin-RevId: 163978262
|
|
|
|
|
|
|
| |
I.e., use an accessor for type inference. The EMPTY field will be made private in a future CL.
RELNOTES: None
PiperOrigin-RevId: 163843569
|
|
|
|
|
|
|
|
| |
Follows
https://docs.google.com/document/d/1aAIVWvHPERDz2cv_PCFGwr8dvh5FcAkENFoRsNS4clk/.
RELNOTES: None.
PiperOrigin-RevId: 163728291
|
|
|
|
|
|
|
| |
Also fix minor bug where a[b] += c would evaluate b twice.
RELNOTES: None
PiperOrigin-RevId: 163103618
|
|
|
|
|
|
|
|
| |
Don't call the `toString` method on unknown objects as it potentially
breaks hermeticity and determinism. Use a generic string like
"<unknown object package.ClassName>" instead.
PiperOrigin-RevId: 161970449
|
|
|
|
|
|
|
| |
Also refactor FAIL_FAST_HANDLER to throw something more specific than IllegalArgumentException. This bug was masked because the test assertion that would've caught it considered IllegalArgumentException to be an expected error, the same as EvalException.
RELNOTES: None
PiperOrigin-RevId: 161809957
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 161706309
|
|
|
|
|
|
| |
*** Reason for rollback ***
PiperOrigin-RevId: 161567104
|
|
|
|
|
|
|
|
|
| |
- changed field names and a couple accessors to consistently use full words ("statement" instead of "stmt")
- applied several local analyzers (from IntelliJ) to remove redundant modifiers, unnecessary explicit types (yay Java 8), etc.
RELNOTES: None
PiperOrigin-RevId: 161551096
|
|
|
|
|
|
|
|
| |
Don't call the `toString` method on unknown objects as it potentially
breaks hermeticity and determinism. Use a generic string like
"<unknown object package.ClassName>" instead.
PiperOrigin-RevId: 161544828
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 161395570
|
|
|
|
|
|
|
| |
Error message is simpler and doesn't show the type of all arguments.
RELNOTES: None.
PiperOrigin-RevId: 161187134
|
|
|
|
|
|
|
|
| |
This is an incompatible change, but it's an obvious bug.
RELNOTES[INC]: Fixed a bug whereby multiple load() statements could appear on the same line
PiperOrigin-RevId: 161070399
|
|
|
|
|
|
|
|
|
|
|
|
| |
In other words, we now forbid these:
[] = []
() = ()
_, [] = f()
RELNOTES[INC]:
lvalues must have define at least one variable (i.e. we forbid `[] = f()`).
PiperOrigin-RevId: 160981283
|
|
|
|
|
|
|
|
|
|
|
| |
If --incompatible_descriptive_string_representations is passed, labels are converted
to strings using `repr` differently: `Label("//package:name")` instead of
`"//package:name"`
This CL doesn't affect representations of other object types but provides the
necessary infrastructure for it.
PiperOrigin-RevId: 160955284
|
|
|
|
|
|
|
| |
RELNOTES[INC]:
`load` is now a language keyword, it cannot be used as an identifier
PiperOrigin-RevId: 160944121
|
|
|
|
|
|
|
| |
Strings now can be passed to the default parameter of attr.label,
attr.label_list, and attr.label_keyed_string_dict.
PiperOrigin-RevId: 160896987
|
|
|
|
|
|
| |
RELNOTES[INC]: Using tabulation for identation is now fobidden in .bzl files
PiperOrigin-RevId: 160888064
|
|
|
|
|
|
|
| |
RELNOTES:
Evaluation will soon use checked arithmetics and throw an error instead of
overflow/underflow.
PiperOrigin-RevId: 160834366
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 160817326
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
This can be used to canonically compare ASTs for equality, e.g. in tests.
RELNOTES: None
PiperOrigin-RevId: 160283160
|
|
|
|
|
|
|
| |
This simplifies parsing a lone statement or expression in unit tests.
RELNOTES: None
PiperOrigin-RevId: 160276410
|
|
|
|
|
|
|
| |
This unifies unary minus with NotExpression, and moves the minus logic from a fake builtin function into the interpreter proper.
RELNOTES: None
PiperOrigin-RevId: 160266266
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 160264501
|
|
|
|
|
|
|
|
| |
RELNOTES[INC]:
In strings, octal sequences greater than \377 are now forbidden (e.g. "\\600").
Previously, Blaze had the same behavior as Python 2, where "\\450" == "\050".
PiperOrigin-RevId: 160147169
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 159948522
|
|
|
|
|
|
|
| |
RELNOTES:
When using the dictionary literal syntax, it is now an error to have
duplicated keys (e.g. {'ab': 3, 'ab': 5}).
PiperOrigin-RevId: 159945431
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 159945244
|
|
|
|
|
|
|
| |
RELNOTES:
Iterating on a `depset` object is deprecated. If you need an iterable,
call the `.to_list()` method first.
PiperOrigin-RevId: 159672887
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 159436969
|
|
|
|
|
|
|
|
|
|
|
|
| |
I'm not using a --incompatible-change flag because it's not available in the
parser. We could pass it, but I think this is trivial to fix and unlikely to
happen in real code (if it does, there was most likely a bug).
RELNOTES[INC]:
Operators for equality, comparison, 'in' and 'not in' are no longer associative,
e.g. x < y < z is now a syntax error. Before, it was parsed as: (x < y) < z.
PiperOrigin-RevId: 159422042
|
|
|
|
|
|
|
|
|
|
|
| |
This affects only the tuple that appears after 'if' inside a list
comprehension. Since a truth value is expected, it's very unlikely to break
existing code. It's technically a breaking change, but it's not worth
introducing a flag for this.
RELNOTES:
Parentheses around the tuple are now mandatory in [a for b in c if 1, 2]
PiperOrigin-RevId: 159218397
|
|
|
|
|
|
| |
RELNOTES:
Octal prefix '0' is deprecated in favor of '0o' (use 0o777 instead of 0777).
PiperOrigin-RevId: 158982649
|
|
|
|
|
|
|
|
|
| |
be a label).
RELNOTES:
First argument of 'load' should be a label. Path syntax is deprecated
(label should start with '//' or ':').
PiperOrigin-RevId: 158971314
|
|
|
|
|
|
|
|
|
|
|
|
| |
With the introduction of the ExtendedEventHandler, SkyFunctions were
given the possibility to post additional Postable events in addition
to the standard events. As SkyFunctions have to be restartable, events
are collected first and only posted after the function is finished.
Make sure that this also applies to postable events and they are not
dropped.
Change-Id: Ie1c3a0134935c75ea984fa2cc924e7327a9da81f
PiperOrigin-RevId: 158964337
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the flag is activated, variables in list comprehensions do not leak anymore.
Even if a variable was defined before the loop, it's not accessible after the loop.
This change allows us to detect any breakage and ensures that no user is accessing
loop variables after the loop.
This will make possible for us to change the behavior and follow Python 3 semantics
in the future.
RELNOTES: None.
PiperOrigin-RevId: 158895514
|
|
|
|
|
|
|
| |
Added public visibility to some constructors/accessors, and made child LValue nodes explicitly constructed by the caller rather than hidden inside constructors. This makes it easier to treat nodes as uniform dumb values. Also added some helpers.
RELNOTES: None
PiperOrigin-RevId: 158761415
|
|
|
|
|
|
|
|
|
| |
Call sites were creating a ValidationEnvironment object with no other purpose
than calling validateAst(). Simplify the code so that callers don't have to
worry about it.
RELNOTES: None.
PiperOrigin-RevId: 158705853
|
|
|
|
| |
PiperOrigin-RevId: 158428641
|
|
|
|
|
|
|
|
|
|
| |
if statements.
RELNOTES:
In .bzl files, top-level `if` statements are deprecated and will be forbidden
in the future. Move them in a function body instead (or use a conditional
expression instead: `x if condition else y`).
PiperOrigin-RevId: 158276986
|