+# 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():
+ ...
\ No newline at end of file