| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- // Part of the Carbon Language project, under the Apache License v2.0 with LLVM
- // Exceptions. See /LICENSE for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- #ifndef CARBON_TOOLCHAIN_SEM_IR_STRINGIFY_H_
- #define CARBON_TOOLCHAIN_SEM_IR_STRINGIFY_H_
- #include "toolchain/sem_ir/file.h"
- #include "toolchain/sem_ir/ids.h"
- namespace Carbon::SemIR {
- // Produces a string version of an instruction with a constant value. Generally,
- // this should not be called directly. To format a constant value into a
- // diagnostic, use a diagnostic parameter of type `InstIdAsConstant`. When the
- // constant value is a type, use `InstIdAsType`, `InstIdAsRawType`, or
- // `TypeOfInstId` where possible, or of type `TypeId` or `TypeIdAsRawType` if
- // you don't have an expression describing the type.
- auto StringifyConstantInst(const File& sem_ir, InstId outer_inst_id)
- -> std::string;
- // Produces a string version of the name of a specific. Generally, this should
- // not be called directly. To format a string into a diagnostic, use a
- // diagnostic parameter of type `SpecificId`.
- auto StringifySpecific(const File& sem_ir, SpecificId specific_id)
- -> std::string;
- // Produces a string version of the name of a specific interface. If the
- // interface is not generic, this is just the name of the interface. Otherwise,
- // it is the interface name and its generic arguments. Generally, this should
- // not be called directly. To format a string into a diagnostic, use a
- // diagnostic parameter of type `SpecificInterface`.
- auto StringifySpecificInterface(const File& sem_ir,
- SpecificInterface specific_interface)
- -> std::string;
- // Produces a string version of the facet type. This contains the name of the
- // interfaces or named constraints that the facet type names, and any
- // requirements such as rewrites.
- auto StringifyFacetType(const File& sem_ir, FacetTypeId facet_type_id)
- -> std::string;
- } // namespace Carbon::SemIR
- #endif // CARBON_TOOLCHAIN_SEM_IR_STRINGIFY_H_
|