
Previously the RELAXED_DECORATOR detection would be falsely True on that example. The problem was that an argument-less parentheses pair didn't pass the `is_simple_decorator_trailer` check even it should. OTOH a parentheses pair containing an argument or more passed as expected.
182 lines
1.7 KiB
Python
182 lines
1.7 KiB
Python
# This file doesn't use the standard decomposition.
|
|
# Decorator syntax test cases are separated by double # comments.
|
|
# Those before the 'output' comment are valid under the old syntax.
|
|
# Those after the 'ouput' comment require PEP614 relaxed syntax.
|
|
# Do not remove the double # separator before the first test case, it allows
|
|
# the comment before the test case to be ignored.
|
|
|
|
##
|
|
|
|
@decorator
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@decorator()
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@decorator(arg)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@decorator(kwarg=0)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@decorator(*args)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@decorator(**kwargs)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@decorator(*args, **kwargs)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@decorator(*args, **kwargs,)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@dotted.decorator
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@dotted.decorator(arg)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@dotted.decorator(kwarg=0)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@dotted.decorator(*args)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@dotted.decorator(**kwargs)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@dotted.decorator(*args, **kwargs)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@dotted.decorator(*args, **kwargs,)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@double.dotted.decorator
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@double.dotted.decorator(arg)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@double.dotted.decorator(kwarg=0)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@double.dotted.decorator(*args)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@double.dotted.decorator(**kwargs)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@double.dotted.decorator(*args, **kwargs)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@double.dotted.decorator(*args, **kwargs,)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@_(sequence["decorator"])
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@eval("sequence['decorator']")
|
|
def f():
|
|
...
|
|
|
|
# output
|
|
|
|
##
|
|
|
|
@decorator()()
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@(decorator)
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@sequence["decorator"]
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@decorator[List[str]]
|
|
def f():
|
|
...
|
|
|
|
##
|
|
|
|
@var := decorator
|
|
def f():
|
|
... |