Skip to content

Commit ad2154f

Browse files
committed
Support negative template literals
Fixes #1
1 parent 0f20b45 commit ad2154f

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "cwdemangle"
3-
version = "0.1.6"
3+
version = "0.1.7"
44
edition = "2018"
55
authors = ["Luke Street <[email protected]>"]
66
license = "MIT OR Apache-2.0"

src/lib.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,12 @@ fn demangle_arg<'a>(
127127
mut str: &'a str,
128128
options: &DemangleOptions,
129129
) -> Option<(String, String, &'a str)> {
130+
// Negative constant
131+
if let Some(str) = str.strip_prefix('-') {
132+
let (size, rest) = parse_digits(str)?;
133+
let out = format!("-{size}");
134+
return Some((out.clone(), String::new(), rest));
135+
}
130136
let mut result = String::new();
131137
let (mut pre, mut post, rest) = parse_qualifiers(str);
132138
result += pre.as_str();
@@ -694,6 +700,10 @@ mod tests {
694700
demangle("QuerySymbolToMapFile___Q24nw4r2dbFPUcPC12OSModuleInfoUlPUcUl", &options),
695701
Some("nw4r::db::QuerySymbolToMapFile_(unsigned char*, const OSModuleInfo*, unsigned long, unsigned char*, unsigned long)".to_string())
696702
);
703+
assert_eq!(
704+
demangle("__ct__Q37JGadget27TLinkList<10JUTConsole,-24>8iteratorFQ37JGadget13TNodeLinkList8iterator", &options),
705+
Some("JGadget::TLinkList<JUTConsole, -24>::iterator::iterator(JGadget::TNodeLinkList::iterator)".to_string())
706+
);
697707
}
698708

699709
#[test]

0 commit comments

Comments
 (0)