@@ -135,6 +135,7 @@ var grammarTestData = []struct {
135135 {"a(b,c)" , "eval" , "Expression(body=Call(func=Name(id='a', ctx=Load()), args=[Name(id='b', ctx=Load()), Name(id='c', ctx=Load())], keywords=[], starargs=None, kwargs=None))" , nil , "" },
136136 {"a(b,*c)" , "eval" , "Expression(body=Call(func=Name(id='a', ctx=Load()), args=[Name(id='b', ctx=Load())], keywords=[], starargs=Name(id='c', ctx=Load()), kwargs=None))" , nil , "" },
137137 {"a(*b)" , "eval" , "Expression(body=Call(func=Name(id='a', ctx=Load()), args=[], keywords=[], starargs=Name(id='b', ctx=Load()), kwargs=None))" , nil , "" },
138+ {"a(*b,c)" , "eval" , "" , py .SyntaxError , "only named arguments may follow *expression" },
138139 {"a(b,*c,**d)" , "eval" , "Expression(body=Call(func=Name(id='a', ctx=Load()), args=[Name(id='b', ctx=Load())], keywords=[], starargs=Name(id='c', ctx=Load()), kwargs=Name(id='d', ctx=Load())))" , nil , "" },
139140 {"a(b,**c)" , "eval" , "Expression(body=Call(func=Name(id='a', ctx=Load()), args=[Name(id='b', ctx=Load())], keywords=[], starargs=None, kwargs=Name(id='c', ctx=Load())))" , nil , "" },
140141 {"a(a=b)" , "eval" , "Expression(body=Call(func=Name(id='a', ctx=Load()), args=[], keywords=[keyword(arg='a', value=Name(id='b', ctx=Load()))], starargs=None, kwargs=None))" , nil , "" },
@@ -244,6 +245,7 @@ var grammarTestData = []struct {
244245 {"a **= b" , "exec" , "Module(body=[AugAssign(target=Name(id='a', ctx=Store()), op=Pow(), value=Name(id='b', ctx=Load()))])" , nil , "" },
245246 {"a //= b" , "exec" , "Module(body=[AugAssign(target=Name(id='a', ctx=Store()), op=FloorDiv(), value=Name(id='b', ctx=Load()))])" , nil , "" },
246247 {"a //= yield b" , "exec" , "Module(body=[AugAssign(target=Name(id='a', ctx=Store()), op=FloorDiv(), value=Yield(value=Name(id='b', ctx=Load())))])" , nil , "" },
248+ {"a <> b" , "exec" , "" , py .SyntaxError , "invalid syntax" },
247249 {"a.b += 1" , "exec" , "Module(body=[AugAssign(target=Attribute(value=Name(id='a', ctx=Load()), attr='b', ctx=Store()), op=Add(), value=Num(n=1))])" , nil , "" },
248250 {"a = b" , "exec" , "Module(body=[Assign(targets=[Name(id='a', ctx=Store())], value=Name(id='b', ctx=Load()))])" , nil , "" },
249251 {"a = 007" , "exec" , "" , py .SyntaxError , "illegal decimal with leading zero" },
@@ -253,6 +255,19 @@ var grammarTestData = []struct {
253255 {"a, b = *a" , "exec" , "Module(body=[Assign(targets=[Tuple(elts=[Name(id='a', ctx=Store()), Name(id='b', ctx=Store())], ctx=Store())], value=Starred(value=Name(id='a', ctx=Load()), ctx=Load()))])" , nil , "" },
254256 {"a = yield a" , "exec" , "Module(body=[Assign(targets=[Name(id='a', ctx=Store())], value=Yield(value=Name(id='a', ctx=Load())))])" , nil , "" },
255257 {"a.b = 1" , "exec" , "Module(body=[Assign(targets=[Attribute(value=Name(id='a', ctx=Load()), attr='b', ctx=Store())], value=Num(n=1))])" , nil , "" },
258+ {"f() = 1" , "exec" , "" , py .SyntaxError , "can't assign to function call" },
259+ {"lambda: x = 1" , "exec" , "" , py .SyntaxError , "can't assign to lambda" },
260+ {"(a + b) = 1" , "exec" , "" , py .SyntaxError , "can't assign to operator" },
261+ {"(x for x in xs) = 1" , "exec" , "" , py .SyntaxError , "can't assign to generator expression" },
262+ {"(yield x) = 1" , "exec" , "" , py .SyntaxError , "can't assign to yield expression" },
263+ {"[x for x in xs] = 1" , "exec" , "" , py .SyntaxError , "can't assign to list comprehension" },
264+ {"{x for x in xs} = 1" , "exec" , "" , py .SyntaxError , "can't assign to set comprehension" },
265+ {"{x:x for x in xs} = 1" , "exec" , "" , py .SyntaxError , "can't assign to dict comprehension" },
266+ {"{} = 1" , "exec" , "" , py .SyntaxError , "can't assign to literal" },
267+ {"None = 1" , "exec" , "" , py .SyntaxError , "can't assign to keyword" },
268+ {"... = 1" , "exec" , "" , py .SyntaxError , "can't assign to Ellipsis" },
269+ {"(a < b) = 1" , "exec" , "" , py .SyntaxError , "can't assign to comparison" },
270+ {"(a if b else c) = 1" , "exec" , "" , py .SyntaxError , "can't assign to conditional expression" },
256271 {"lambda: a" , "eval" , "Expression(body=Lambda(args=arguments(args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), body=Name(id='a', ctx=Load())))" , nil , "" },
257272 {"lambda: lambda: a" , "eval" , "Expression(body=Lambda(args=arguments(args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), body=Lambda(args=arguments(args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), body=Name(id='a', ctx=Load()))))" , nil , "" },
258273 {"lambda a: a" , "eval" , "Expression(body=Lambda(args=arguments(args=[arg(arg='a', annotation=None)], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), body=Name(id='a', ctx=Load())))" , nil , "" },
@@ -284,6 +299,7 @@ var grammarTestData = []struct {
284299 {"def fn(**kws): pass" , "exec" , "Module(body=[FunctionDef(name='fn', args=arguments(args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=arg(arg='kws', annotation=None), defaults=[]), body=[Pass()], decorator_list=[], returns=None)])" , nil , "" },
285300 {"def fn() -> None: pass" , "exec" , "Module(body=[FunctionDef(name='fn', args=arguments(args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), body=[Pass()], decorator_list=[], returns=NameConstant(value=None))])" , nil , "" },
286301 {"def fn(a:'potato') -> 'sausage': pass" , "exec" , "Module(body=[FunctionDef(name='fn', args=arguments(args=[arg(arg='a', annotation=Str(s='potato'))], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), body=[Pass()], decorator_list=[], returns=Str(s='sausage'))])" , nil , "" },
302+ {"del f()" , "exec" , "" , py .SyntaxError , "can't delete function call" },
287303 {"class A: pass" , "exec" , "Module(body=[ClassDef(name='A', bases=[], keywords=[], starargs=None, kwargs=None, body=[Pass()], decorator_list=[])])" , nil , "" },
288304 {"class A(): pass" , "exec" , "Module(body=[ClassDef(name='A', bases=[], keywords=[], starargs=None, kwargs=None, body=[Pass()], decorator_list=[])])" , nil , "" },
289305 {"class A(B): pass" , "exec" , "Module(body=[ClassDef(name='A', bases=[Name(id='B', ctx=Load())], keywords=[], starargs=None, kwargs=None, body=[Pass()], decorator_list=[])])" , nil , "" },
0 commit comments