Skip to content

Commit 550be1d

Browse files
author
Matthias Güdemann
committed
Make two helper functions available
1 parent 1957426 commit 550be1d

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)