mercurial/registrar.py
changeset 30613 b52e8a4f4c0f
parent 30342 318a24b52eeb
child 31820 45761ef1bc93
--- a/mercurial/registrar.py	Sun Oct 16 17:01:41 2016 +0900
+++ b/mercurial/registrar.py	Mon Dec 12 13:32:45 2016 +0100
@@ -8,6 +8,7 @@
 from __future__ import absolute_import
 
 from . import (
+    error,
     pycompat,
     util,
 )
@@ -50,6 +51,10 @@
     def _doregister(self, func, decl, *args, **kwargs):
         name = self._getname(decl)
 
+        if name in self._table:
+            msg = 'duplicate registration for name: "%s"' % name
+            raise error.ProgrammingError(msg)
+
         if func.__doc__ and not util.safehasattr(func, '_origdoc'):
             doc = func.__doc__.strip()
             func._origdoc = doc