mirror of
https://github.com/xonsh/xonsh.git
synced 2025-03-04 08:24:40 +01:00
bah
This commit is contained in:
parent
76cab93b35
commit
f96263d4fd
2 changed files with 22 additions and 2 deletions
|
@ -619,6 +619,16 @@ def test_call_tuple_gen():
|
|||
def test_call_tuple_genifs():
|
||||
yield check_ast, 'tuple(x for x in [1, 2, 3] if x < 3)'
|
||||
|
||||
def test_call_range_star():
|
||||
yield check_ast, 'range(*[1, 2, 3])'
|
||||
|
||||
def test_call_range_x_star():
|
||||
yield check_ast, 'range(1, *[2, 3])'
|
||||
|
||||
def test_call_int():
|
||||
yield check_ast, 'int(*["42"], base=8)'
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1383,9 +1383,11 @@ class Parser(object):
|
|||
"""classdef : CLASS NAME func_call_opt COLON suite"""
|
||||
p[0] = p[1:]
|
||||
|
||||
def _set_arg(self, args, arg):
|
||||
def _set_arg(self, args, arg, ensure_kw=False):
|
||||
if isinstance(arg, ast.keyword):
|
||||
args['keywords'].append(arg)
|
||||
elif ensure_kw:
|
||||
raise SyntaxError('{0} must be a keyword'.format(arg))
|
||||
else:
|
||||
args['args'].append(arg)
|
||||
|
||||
|
@ -1396,8 +1398,8 @@ class Parser(object):
|
|||
| argument_comma_list_opt TIMES test comma_argument_list_opt COMMA POW test
|
||||
| argument_comma_list_opt POW test
|
||||
"""
|
||||
p1, p2 = p[1], p[2]
|
||||
lenp = len(p)
|
||||
p1, p2 = p[1], p[2]
|
||||
p0 = {'args': [], 'keywords': [], 'starargs': None, 'kwargs': None}
|
||||
if lenp == 3:
|
||||
self._set_arg(p0, p1)
|
||||
|
@ -1405,6 +1407,14 @@ class Parser(object):
|
|||
for arg in p1:
|
||||
self._set_arg(p0, arg)
|
||||
self._set_arg(p0, p2)
|
||||
elif lenp == 5:
|
||||
p0['starargs'], p4 = p[3], p[4]
|
||||
if p1 is not None:
|
||||
for arg in p1:
|
||||
self._set_arg(p0, arg)
|
||||
if p4 is not None:
|
||||
for arg in p4:
|
||||
self._set_arg(p0, arg, ensure_kw=True)
|
||||
else:
|
||||
assert False
|
||||
p[0] = p0
|
||||
|
|
Loading…
Add table
Reference in a new issue