Skip to content

Commit 008b8d5

Browse files
author
Matthias Güdemann
authored
Merge pull request diffblue#1611 from mgudemann/enhancement/make_available_erase_type_arguments_gather_full_class_name
Make two helper functions available
2 parents dc769f1 + 550be1d commit 008b8d5

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/java_bytecode/java_types.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ std::string erase_type_arguments(const std::string &src)
259259

260260
/// Returns the full class name, skipping over the generics.
261261
/// \param src: a type descriptor or signature
262-
/// 1. Signature: Lcom/package/OuterClass<TT;>.Inner;
262+
/// 1. Signature: Lcom/package/OuterClass<TT;>.Inner;
263263
/// 2. Descriptor: Lcom.pacakge.OuterClass$Inner;
264264
/// \return The full name of the class like com.package.OuterClass.Inner (for
265265
/// both examples).

src/java_bytecode/java_types.h

+12
Original file line numberDiff line numberDiff line change
@@ -425,4 +425,16 @@ to_java_specialized_generic_class_type(typet &type)
425425
return static_cast<const java_specialized_generic_class_typet &>(type);
426426
}
427427

428+
/// Take a signature string and remove everything in angle brackets allowing for
429+
/// the type to be parsed normally, for example
430+
/// `java.util.HashSet<java.lang.Integer>` will be turned into
431+
/// `java.util.HashSet`
432+
std::string erase_type_arguments(const std::string &src);
433+
/// Returns the full class name, skipping over the generics. This turns any of
434+
/// these:
435+
/// 1. Signature: Lcom/package/OuterClass<TT;>.Inner;
436+
/// 2. Descriptor: Lcom.pacakge.OuterClass$Inner;
437+
/// into `com.package.OuterClass.Inner`
438+
std::string gather_full_class_name(const std::string &src);
439+
428440
#endif // CPROVER_JAVA_BYTECODE_JAVA_TYPES_H

0 commit comments

Comments
 (0)