# HG changeset patch # User Pierre-Yves David # Date 1481545965 -3600 # Node ID b52e8a4f4c0fa1a206a3f181b250ba9833fe88a1 # Parent 07025bd744a09dd5622e16ccef11966fda7b86f2 registrar: raise a programming error on duplicated registering Previous, registering different object with the same name would silently overwrite the first value with the second one. We now detect the situation and raise an error. No extension in test or core had the issues. diff -r 07025bd744a0 -r b52e8a4f4c0f mercurial/registrar.py --- 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