Error API Cleanup (#45)

This commit is contained in:
Armin Ronacher
2019-07-17 14:35:16 +02:00
committed by GitHub
parent 555468840b
commit 2f05c5cdbc
3 changed files with 204 additions and 170 deletions
+6 -2
View File
@@ -18,7 +18,8 @@ fn main() {
let print_demangled = |sym: &str| {
let parsed = match msvc_demangler::parse(&sym) {
Ok(parsed) => parsed,
Err(_) => {
Err(err) => {
eprintln!("error: {}", err);
println!("{}", sym);
return;
}
@@ -30,7 +31,10 @@ fn main() {
let demangled = msvc_demangler::serialize(&parsed, flags);
match demangled {
Ok(ref string) => println!("{}", string),
_ => println!("{}", sym),
Err(err) => {
eprintln!("error: {}", err);
println!("{}", sym);
}
}
};
+188 -162
View File
File diff suppressed because it is too large Load Diff
+10 -6
View File
@@ -1,17 +1,21 @@
extern crate msvc_demangler;
use msvc_demangler::{demangle, DemangleFlags, Result};
use msvc_demangler::{demangle, DemangleFlags};
fn expect_with_flags(input: &str, reference: &str, flags: u32) {
let demangled: Result<_> = demangle(input, ::DemangleFlags::from_bits(flags).unwrap());
let reference: Result<_> = Ok(reference.to_owned());
assert_eq!(demangled, reference);
let demangled = demangle(input, ::DemangleFlags::from_bits(flags).unwrap());
let reference = reference.to_owned();
if let Ok(demangled) = demangled {
assert_eq!(demangled, reference);
} else {
panic!("{:?} != {:?}", demangled, Ok::<_, ()>(reference));
}
}
// For cases where undname demangles differently/better than we do.
fn expect_failure(input: &str, reference: &str) {
let demangled: Result<_> = demangle(input, ::DemangleFlags::COMPLETE);
let reference: Result<_> = Ok(reference.to_owned());
let demangled = demangle(input, ::DemangleFlags::COMPLETE).unwrap();
let reference = reference.to_owned();
assert_ne!(demangled, reference);
}
// std::basic_filebuf<char,struct std::char_traits<char> >::basic_filebuf<char,struct std::char_traits<char> >