# 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))