* cton-util: fix some clippy unnecessary pass-by-value warnings * clippy: ignore too many arguments / cyclomatic complexity in module since these functions are taking args coming from the command line, i dont think this is actually a valid lint, morally the arguments are all from one structure * cton-util: take care of remaining clippy warnings * cton-reader: fix all non-suspicious clippy warnings * cton-reader: disable clippy at site of suspicious lint * cton-frontend: disable clippy at the site of an invalid lint * cton-frontend: fix clippy warnings, or ignore benign ones * clippy: ignore the camelcase word WebAssembly in docs * cton-wasm: fix clippy complaints or ignore benign ones * cton-wasm tests: fix clippy complaints * cretonne: starting point turns off all clippy warnings * cretonne: clippy fixes, or lower allow() to source of problem * cretonne: more clippy fixes * cretonne: fix or disable needless_lifetimes lint this linter is buggy when the declared lifetime is used for another type constraint. * cretonne: fix clippy complaint about Pass::NoPass * rustfmt * fix prev minor api changes clippy suggested * add clippy to test-all * cton-filetests: clippy fixes * simplify clippy reporting in test-all * cretonne: document clippy allows better * cretonne: fix some more clippy lints * cretonne: fix clippy lints (mostly doc comments) * cretonne: allow all needless_lifetimes clippy warnings remove overrides at the false positives * rustfmt
34 lines
871 B
Rust
34 lines
871 B
Rust
//! Utility routines for pretty-printing error messages.
|
|
|
|
use ir;
|
|
use verifier;
|
|
use result::CtonError;
|
|
use isa::TargetIsa;
|
|
use std::fmt::Write;
|
|
|
|
/// Pretty-print a verifier error.
|
|
pub fn pretty_verifier_error(
|
|
func: &ir::Function,
|
|
isa: Option<&TargetIsa>,
|
|
err: &verifier::Error,
|
|
) -> String {
|
|
let mut msg = err.to_string();
|
|
match err.location {
|
|
ir::entities::AnyEntity::Inst(inst) => {
|
|
write!(msg, "\n{}: {}\n\n", inst, func.dfg.display_inst(inst, isa)).unwrap()
|
|
}
|
|
_ => msg.push('\n'),
|
|
}
|
|
write!(msg, "{}", func.display(isa)).unwrap();
|
|
msg
|
|
}
|
|
|
|
/// Pretty-print a Cretonne error.
|
|
pub fn pretty_error(func: &ir::Function, isa: Option<&TargetIsa>, err: CtonError) -> String {
|
|
if let CtonError::Verifier(e) = err {
|
|
pretty_verifier_error(func, isa, &e)
|
|
} else {
|
|
err.to_string()
|
|
}
|
|
}
|