# This only tests the call arguments and not the expression before the opening parenthesis.

# Simple
call()
call(x, y)
call(x, y,)  # Trailing comma
call(x=1, y=2)
call(*x)
call(**x)

# Order
call(x, y=1)
call(x, *y)
call(x, **y)
call(x=1, *y)
call(x=1, **y)
call(*x, **y)
call(*x, y, z)
call(**x, y=1, z=2)
call(*x1, *x2, **y1, **y2)
call(x=1, **y, z=1)

# Keyword expression
call(x=1 if True else 2)
call(x=await y)
call(x=lambda y: y)
call(x=(y := 1))

# Yield expression
call((yield x))
call((yield from x))

# Named expression
call(x := 1)
call(x := 1 for x in iter)

# Starred expressions
call(*x and y)
call(*x | y)
call(*await x)
call(*lambda x: x)
call(*x if True else y)

# Double starred
call(**x)
call(**x and y)
call(**await x)
call(**x if True else y)
call(**(yield x))
call(**lambda x: x)
