diff --git a/llvm/lib/Demangle/RustDemangle.cpp b/llvm/lib/Demangle/RustDemangle.cpp --- a/llvm/lib/Demangle/RustDemangle.cpp +++ b/llvm/lib/Demangle/RustDemangle.cpp @@ -427,6 +427,13 @@ return printBasicType(Type); switch (C) { + case 'A': + print("["); + demangleType(); + print("; "); + demangleConst(); + print("]"); + break; case 'C': case 'M': case 'X': diff --git a/llvm/test/Demangle/rust.test b/llvm/test/Demangle/rust.test --- a/llvm/test/Demangle/rust.test +++ b/llvm/test/Demangle/rust.test @@ -155,6 +155,14 @@ CHECK: > _RMC5crateIC4NameE +; Types + +CHECK: types::<[_; _]> + _RIC5typesAppE + +CHECK: types::<[u8; 0]> + _RIC5typesAhj0_E + ; Integer constants. Test value demangling. CHECK: integer::<0>