blob: a43c848f77d3802ebaeb5ae4eefd5c2dc430daa0 [file] [log] [blame]
def keywordonly_sum(*, k1=0, k2):
return k1 + k2
keywordonly_sum(k2=1)
keywordonly_sum(k1=1, k2=2)
keywordonly_sum(<warning descr="Parameter 'k2' unfilled">)</warning>
keywordonly_sum(<warning descr="Unexpected argument">1</warning>, <warning descr="Unexpected argument">2</warning><warning descr="Parameter 'k2' unfilled">)</warning>
def namedpast(*args, foo=None):
pass
namedpast(1,2,3, foo='a') # pass
namedpast(*args, foo='b') # pass
namedpast(foo='c') # pass
namedpast() # pass
namedpast(foo='1', <error descr="Cannot appear past keyword arguments or *arg or **kwarg">2</error>) # fail
def a23(a, *b, c=1):
pass
a23(1,2,3, c=10) # pass
a23(1,2,3, c=10, <warning descr="Duplicate argument">a=1</warning>) # fail
a23(c=10, a=1) # pass
a23(c=10, <error descr="Cannot appear past keyword arguments or *arg or **kwarg">1</error><warning descr="Parameter 'a' unfilled">)</warning> # fail
a23(<warning descr="Multiple values resolve to positional parameter 'a'">*args</warning>, a=1) # fail
a23(*args, c=1) # pass