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