From cea917ab6e0f5d6548d516f8c30e197d63db9baa Mon Sep 17 00:00:00 2001 From: alandonovan Date: Thu, 21 Jan 2021 17:58:09 -0500 Subject: resolver: make -nesteddef and -lambda always on (#328) See https://github.com/bazelbuild/starlark/pull/145 for spec changes. Updates https://github.com/bazelbuild/starlark/issues/20 --- starlark/eval_test.go | 2 -- starlark/testdata/assign.star | 2 -- starlark/testdata/benchmark.star | 1 - starlark/testdata/dict.star | 1 - starlark/testdata/function.star | 5 ++--- starlark/testdata/list.star | 29 ++++++++++++++--------------- 6 files changed, 16 insertions(+), 24 deletions(-) (limited to 'starlark') diff --git a/starlark/eval_test.go b/starlark/eval_test.go index 309a5b1..4ce08d3 100644 --- a/starlark/eval_test.go +++ b/starlark/eval_test.go @@ -28,8 +28,6 @@ import ( func setOptions(src string) { resolve.AllowGlobalReassign = option(src, "globalreassign") resolve.LoadBindsGlobally = option(src, "loadbindsglobally") - resolve.AllowLambda = option(src, "lambda") - resolve.AllowNestedDef = option(src, "nesteddef") resolve.AllowRecursion = option(src, "recursion") resolve.AllowSet = option(src, "set") } diff --git a/starlark/testdata/assign.star b/starlark/testdata/assign.star index 64d60fb..7f579f0 100644 --- a/starlark/testdata/assign.star +++ b/starlark/testdata/assign.star @@ -90,7 +90,6 @@ assert.eq(m, 3) assert.eq(n, 4) --- -# option:nesteddef # misc assignment load("assert.star", "assert") @@ -176,7 +175,6 @@ f() g = 1 --- -# option:nesteddef # Free variables are captured by reference, so this is ok. load("assert.star", "assert") diff --git a/starlark/testdata/benchmark.star b/starlark/testdata/benchmark.star index 85d6d94..b02868d 100644 --- a/starlark/testdata/benchmark.star +++ b/starlark/testdata/benchmark.star @@ -1,5 +1,4 @@ # Benchmarks of Starlark execution -# option:nesteddef def bench_range_construction(b): for _ in range(b.n): diff --git a/starlark/testdata/dict.star b/starlark/testdata/dict.star index 9864be7..1aeb1e7 100644 --- a/starlark/testdata/dict.star +++ b/starlark/testdata/dict.star @@ -1,5 +1,4 @@ # Tests of Starlark 'dict' -# option:nesteddef load("assert.star", "assert", "freeze") diff --git a/starlark/testdata/function.star b/starlark/testdata/function.star index 9b74740..bdfa5ac 100644 --- a/starlark/testdata/function.star +++ b/starlark/testdata/function.star @@ -1,5 +1,5 @@ # Tests of Starlark 'function' -# option:nesteddef option:set +# option:set # TODO(adonovan): # - add some introspection functions for looking at function values @@ -239,7 +239,7 @@ assert.eq(y, ((1, 2, 4), dict(x=3, z=5))) assert.eq(r, [1, 2, 3, 4, 5]) --- -# option:nesteddef option:recursion +# option:recursion # See github.com/bazelbuild/starlark#170 load("assert.star", "assert") @@ -276,7 +276,6 @@ def e(): assert.eq(e(), 1) --- -# option:nesteddef load("assert.star", "assert") def e(): diff --git a/starlark/testdata/list.star b/starlark/testdata/list.star index ff98b96..526a962 100644 --- a/starlark/testdata/list.star +++ b/starlark/testdata/list.star @@ -1,5 +1,4 @@ # Tests of Starlark 'list' -# option:nesteddef load("assert.star", "assert", "freeze") @@ -16,14 +15,14 @@ assert.true(not []) # indexing, x[i] abc = list("abc".elems()) -assert.fails(lambda : abc[-4], "list index -4 out of range \\[-3:2]") +assert.fails(lambda: abc[-4], "list index -4 out of range \\[-3:2]") assert.eq(abc[-3], "a") assert.eq(abc[-2], "b") assert.eq(abc[-1], "c") assert.eq(abc[0], "a") assert.eq(abc[1], "b") assert.eq(abc[2], "c") -assert.fails(lambda : abc[3], "list index 3 out of range \\[-3:2]") +assert.fails(lambda: abc[3], "list index 3 out of range \\[-3:2]") # x[i] = ... x3 = [0, 1, 2] @@ -45,8 +44,8 @@ assert.fails(x3.clear, "cannot clear frozen list") # list + list assert.eq([1, 2, 3] + [3, 4, 5], [1, 2, 3, 3, 4, 5]) -assert.fails(lambda : [1, 2] + (3, 4), "unknown.*list \\+ tuple") -assert.fails(lambda : (1, 2) + [3, 4], "unknown.*tuple \\+ list") +assert.fails(lambda: [1, 2] + (3, 4), "unknown.*list \\+ tuple") +assert.fails(lambda: (1, 2) + [3, 4], "unknown.*tuple \\+ list") # list * int, int * list assert.eq(abc * 0, []) @@ -73,8 +72,8 @@ assert.eq([(y, x) for x, y in {1: 2, 3: 4}.items()], [(2, 1), (4, 3)]) # corner cases of parsing: assert.eq([x for x in range(12) if x % 2 == 0 if x % 3 == 0], [0, 6]) -assert.eq([x for x in [1, 2] if lambda : None], [1, 2]) -assert.eq([x for x in [1, 2] if (lambda : 3 if True else 4)], [1, 2]) +assert.eq([x for x in [1, 2] if lambda: None], [1, 2]) +assert.eq([x for x in [1, 2] if (lambda: 3 if True else 4)], [1, 2]) # list function assert.eq(list(), []) @@ -98,8 +97,8 @@ listcompblock() # list.pop x4 = [1, 2, 3, 4, 5] -assert.fails(lambda : x4.pop(-6), "index -6 out of range \\[-5:4]") -assert.fails(lambda : x4.pop(6), "index 6 out of range \\[-5:4]") +assert.fails(lambda: x4.pop(-6), "index -6 out of range \\[-5:4]") +assert.fails(lambda: x4.pop(6), "index 6 out of range \\[-5:4]") assert.eq(x4.pop(), 5) assert.eq(x4, [1, 2, 3, 4]) assert.eq(x4.pop(1), 2) @@ -205,12 +204,12 @@ def remove(v): assert.eq(remove(3), [1, 4, 1]) assert.eq(remove(1), [3, 4, 1]) assert.eq(remove(4), [3, 1, 1]) -assert.fails(lambda : [3, 1, 4, 1].remove(42), "remove: element not found") +assert.fails(lambda: [3, 1, 4, 1].remove(42), "remove: element not found") # list.index bananas = list("bananas".elems()) assert.eq(bananas.index("a"), 1) # bAnanas -assert.fails(lambda : bananas.index("d"), "value not in list") +assert.fails(lambda: bananas.index("d"), "value not in list") # start assert.eq(bananas.index("a", -1000), 1) # bAnanas @@ -220,14 +219,14 @@ assert.eq(bananas.index("a", 2), 3) # banAnas assert.eq(bananas.index("a", 3), 3) # banAnas assert.eq(bananas.index("b", 0), 0) # Bananas assert.eq(bananas.index("n", -3), 4) # banaNas -assert.fails(lambda : bananas.index("n", -2), "value not in list") +assert.fails(lambda: bananas.index("n", -2), "value not in list") assert.eq(bananas.index("s", -2), 6) # bananaS -assert.fails(lambda : bananas.index("b", 1), "value not in list") +assert.fails(lambda: bananas.index("b", 1), "value not in list") # start, end assert.eq(bananas.index("s", -1000, 7), 6) # bananaS -assert.fails(lambda : bananas.index("s", -1000, 6), "value not in list") -assert.fails(lambda : bananas.index("d", -1000, 1000), "value not in list") +assert.fails(lambda: bananas.index("s", -1000, 6), "value not in list") +assert.fails(lambda: bananas.index("d", -1000, 1000), "value not in list") # slicing, x[i:j:k] assert.eq(bananas[6::-2], list("snnb".elems())) -- cgit v1.2.3