| # DExTer : Debugging Experience Tester |
| # ~~~~~~ ~ ~~ ~ ~~ |
| # |
| # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| # See https://llvm.org/LICENSE.txt for license information. |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| |
| |
| class ValueIR: |
| """Data class to store the result of an expression evaluation.""" |
| |
| def __init__(self, |
| expression: str, |
| value: str, |
| type_name: str, |
| could_evaluate: bool, |
| error_string: str = None, |
| is_optimized_away: bool = False, |
| is_irretrievable: bool = False): |
| self.expression = expression |
| self.value = value |
| self.type_name = type_name |
| self.could_evaluate = could_evaluate |
| self.error_string = error_string |
| self.is_optimized_away = is_optimized_away |
| self.is_irretrievable = is_irretrievable |
| |
| def __str__(self): |
| prefix = '"{}": '.format(self.expression) |
| if self.error_string is not None: |
| return prefix + self.error_string |
| if self.value is not None: |
| return prefix + '({}) {}'.format(self.type_name, self.value) |
| return (prefix + |
| 'could_evaluate: {}; irretrievable: {}; optimized_away: {};' |
| .format(self.could_evaluate, self.is_irretrievable, |
| self.is_optimized_away)) |
| |