diff options
author | Tom Stellard <tstellar@redhat.com> | 2017-09-28 20:22:56 +0300 |
---|---|---|
committer | Tom Stellard <tstellar@redhat.com> | 2017-09-28 20:22:56 +0300 |
commit | 7c188fa829fb33a634a9abf45647702ed7336c2f (patch) | |
tree | 7890331b8c4b9b359219e480866b1379cebce48f | |
parent | 722d0d276017f75400abab07fe5041fcdee556b9 (diff) |
Merging r312622:
------------------------------------------------------------------------
r312622 | jbcoe | 2017-09-06 00:33:32 -0700 (Wed, 06 Sep 2017) | 13 lines
Fix __repr__ for Diagnostic in clang.cindex
Summary: Also move misplaced tests for exception specification to fix failing Python tests.
Reviewers: hans, compnerd
Reviewed By: compnerd
Subscribers: cfe-commits
Tags: #clang-c
Differential Revision: https://reviews.llvm.org/D37490
------------------------------------------------------------------------
llvm-svn: 314434
-rw-r--r-- | clang/bindings/python/clang/cindex.py | 8 | ||||
-rw-r--r-- | clang/bindings/python/tests/cindex/test_diagnostics.py | 8 | ||||
-rw-r--r-- | clang/bindings/python/tests/cindex/test_exception_specification_kind.py (renamed from clang/bindings/python/tests/test_exception_specification_kind.py) | 0 |
3 files changed, 11 insertions, 5 deletions
diff --git a/clang/bindings/python/clang/cindex.py b/clang/bindings/python/clang/cindex.py index 236803a9ab9b..4069ab8650d6 100644 --- a/clang/bindings/python/clang/cindex.py +++ b/clang/bindings/python/clang/cindex.py @@ -207,7 +207,7 @@ class _CXString(Structure): conf.lib.clang_disposeString(self) @staticmethod - def from_result(res, fn, args): + def from_result(res, fn=None, args=None): assert isinstance(res, _CXString) return conf.lib.clang_getCString(res) @@ -459,8 +459,7 @@ class Diagnostic(object): """The command-line option that disables this diagnostic.""" disable = _CXString() conf.lib.clang_getDiagnosticOption(self, byref(disable)) - - return conf.lib.clang_getCString(disable) + return _CXString.from_result(disable) def format(self, options=None): """ @@ -473,8 +472,7 @@ class Diagnostic(object): options = conf.lib.clang_defaultDiagnosticDisplayOptions() if options & ~Diagnostic._FormatOptionsMask: raise ValueError('Invalid format options') - formatted = conf.lib.clang_formatDiagnostic(self, options) - return conf.lib.clang_getCString(formatted) + return conf.lib.clang_formatDiagnostic(self, options) def __repr__(self): return "<Diagnostic severity %r, location %r, spelling %r>" % ( diff --git a/clang/bindings/python/tests/cindex/test_diagnostics.py b/clang/bindings/python/tests/cindex/test_diagnostics.py index ba6e545e8b1a..23cbe89f6581 100644 --- a/clang/bindings/python/tests/cindex/test_diagnostics.py +++ b/clang/bindings/python/tests/cindex/test_diagnostics.py @@ -92,3 +92,11 @@ def test_diagnostic_children(): assert children[0].spelling.endswith('declared here') assert children[0].location.line == 1 assert children[0].location.column == 1 + +def test_diagnostic_string_repr(): + tu = get_tu('struct MissingSemicolon{}') + assert len(tu.diagnostics) == 1 + d = tu.diagnostics[0] + + assert repr(d) == '<Diagnostic severity 3, location <SourceLocation file \'t.c\', line 1, column 26>, spelling "expected \';\' after struct">' + diff --git a/clang/bindings/python/tests/test_exception_specification_kind.py b/clang/bindings/python/tests/cindex/test_exception_specification_kind.py index 543d47f7db97..543d47f7db97 100644 --- a/clang/bindings/python/tests/test_exception_specification_kind.py +++ b/clang/bindings/python/tests/cindex/test_exception_specification_kind.py |