From 550be1dbece80e90ec9f532d21e0dcc2177c729c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20G=C3=BCdemann?= Date: Wed, 22 Nov 2017 12:21:10 +0100 Subject: [PATCH] Make two helper functions available --- src/java_bytecode/java_types.cpp | 2 +- src/java_bytecode/java_types.h | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/java_bytecode/java_types.cpp b/src/java_bytecode/java_types.cpp index 875bd09e181..5945624ad28 100644 --- a/src/java_bytecode/java_types.cpp +++ b/src/java_bytecode/java_types.cpp @@ -259,7 +259,7 @@ std::string erase_type_arguments(const std::string &src) /// Returns the full class name, skipping over the generics. /// \param src: a type descriptor or signature -/// 1. Signature: Lcom/package/OuterClass.Inner; +/// 1. Signature: Lcom/package/OuterClass.Inner; /// 2. Descriptor: Lcom.pacakge.OuterClass$Inner; /// \return The full name of the class like com.package.OuterClass.Inner (for /// both examples). diff --git a/src/java_bytecode/java_types.h b/src/java_bytecode/java_types.h index 1957880ee19..d25d49bcefa 100644 --- a/src/java_bytecode/java_types.h +++ b/src/java_bytecode/java_types.h @@ -425,4 +425,16 @@ to_java_specialized_generic_class_type(typet &type) return static_cast(type); } +/// Take a signature string and remove everything in angle brackets allowing for +/// the type to be parsed normally, for example +/// `java.util.HashSet` will be turned into +/// `java.util.HashSet` +std::string erase_type_arguments(const std::string &src); +/// Returns the full class name, skipping over the generics. This turns any of +/// these: +/// 1. Signature: Lcom/package/OuterClass.Inner; +/// 2. Descriptor: Lcom.pacakge.OuterClass$Inner; +/// into `com.package.OuterClass.Inner` +std::string gather_full_class_name(const std::string &src); + #endif // CPROVER_JAVA_BYTECODE_JAVA_TYPES_H