PEP-0318, @decorator-style. In Guido's words:
"@ seems the syntax that everybody can hate equally"
Implementation by Mark Russell, from SF #979728.
diff --git a/Lib/test/pyclbr_input.py b/Lib/test/pyclbr_input.py
new file mode 100644
index 0000000..b410fcc
--- /dev/null
+++ b/Lib/test/pyclbr_input.py
@@ -0,0 +1,33 @@
+"""Test cases for test_pyclbr.py"""
+
+def f(): pass
+
+class Other(object):
+ @classmethod
+ def foo(c): pass
+
+ def om(self): pass
+
+class B (object):
+ def bm(self): pass
+
+class C (B):
+ foo = Other().foo
+ om = Other.om
+
+ d = 10
+
+ # XXX: This causes test_pyclbr.py to fail, but only because the
+ # introspection-based is_method() code in the test can't
+ # distinguish between this and a geniune method function like m().
+ # The pyclbr.py module gets this right as it parses the text.
+ #
+ #f = f
+
+ def m(self): pass
+
+ @staticmethod
+ def sm(self): pass
+
+ @classmethod
+ def cm(self): pass