errors: make ParseError a subtype of Abort
authorMartin von Zweigbergk <martinvonz@google.com>
Thu, 19 Nov 2020 15:13:39 -0800
changeset 45887 7eb221b9af6c
parent 45886 18489e26d9a0
child 45888 c9b14c56fc2b
errors: make ParseError a subtype of Abort I didn't plan this before, but the previous two changes made it really easy to make `ParseError` a subtype of `Abort`. It seems obvious with hindsight that I *should* have planned it :) Differential Revision: https://phab.mercurial-scm.org/D9350
mercurial/chgserver.py
mercurial/dispatch.py
mercurial/error.py
--- a/mercurial/chgserver.py	Fri Nov 20 13:24:45 2020 -0800
+++ b/mercurial/chgserver.py	Thu Nov 19 15:13:39 2020 -0800
@@ -506,11 +506,6 @@
         args = self._readlist()
         try:
             self.ui, lui = _loadnewui(self.ui, args, self.cdebug)
-        except error.ParseError as inst:
-            self.ui.warn(inst.format())
-            self.ui.flush()
-            self.cresult.write(b'exit 255')
-            return
         except error.Abort as inst:
             self.ui.error(inst.format())
             self.ui.flush()
--- a/mercurial/dispatch.py	Fri Nov 20 13:24:45 2020 -0800
+++ b/mercurial/dispatch.py	Thu Nov 19 15:13:39 2020 -0800
@@ -258,9 +258,6 @@
         except error.Abort as inst:
             ferr.write(inst.format())
             return -1
-        except error.ParseError as inst:
-            ferr.write(inst.format())
-            return -1
 
         msg = _formatargs(req.args)
         starttime = util.timer()
@@ -466,9 +463,6 @@
         else:
             ui.warn(_(b"hg: %s\n") % inst.message)
             ui.warn(_(b"(use 'hg help -v' for a list of global options)\n"))
-    except error.ParseError as inst:
-        ui.warn(inst.format())
-        return -1
     except error.UnknownCommand as inst:
         nocmdmsg = _(b"hg: unknown command '%s'\n") % inst.command
         try:
--- a/mercurial/error.py	Fri Nov 20 13:24:45 2020 -0800
+++ b/mercurial/error.py	Thu Nov 19 15:13:39 2020 -0800
@@ -259,13 +259,12 @@
     __bytes__ = _tobytes
 
 
-class ParseError(Hint, Exception):
+class ParseError(Abort):
     """Raised when parsing config files and {rev,file}sets (msg[, pos])"""
 
     def __init__(self, message, location=None, hint=None):
-        self.message = message
+        super(ParseError, self).__init__(message, hint=hint)
         self.location = location
-        self.hint = hint
         # Pass the message and possibly location into the Exception constructor
         # to help code that looks for exc.args.
         if location is not None: