diagnostics: add a Context class for reusable context managers

Change-Id: I43cea197b2b4dd0c21f3465dd70470bd0c1782a2
TN: P614-007
This commit is contained in:
Pierre-Marie de Rodat
2016-06-27 13:16:44 +02:00
parent 62465137dc
commit ff25cc1c3d

View File

@@ -80,6 +80,22 @@ def context(message, location):
context_stack.pop()
class Context(object):
"""
Like "context", but can be used more than once.
"""
def __init__(self, message, location):
self.message = message
self.location = location
def __enter__(self):
context_stack.append((self.message, self.location))
def __exit__(self, value, typ, traceback):
context_stack.pop()
class DiagnosticError(Exception):
pass