Skip to content

Commit a9bb35c

Browse files
author
Daniel Kroening
committed
strip package name from base_name of Java class symbols
1 parent 88db26f commit a9bb35c

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

src/java_bytecode/java_bytecode_convert_class.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -377,9 +377,17 @@ void java_bytecode_convert_classt::convert(
377377
if(!c.annotations.empty())
378378
convert_annotations(c.annotations, class_type.get_annotations());
379379

380+
// the base name is the name of the class without the package
381+
const irep_idt base_name = [](const std::string &full_name) {
382+
const size_t last_dot = full_name.find_last_of('.');
383+
return last_dot == std::string::npos
384+
? full_name
385+
: std::string(full_name, last_dot + 1, std::string::npos);
386+
}(id2string(c.name));
387+
380388
// produce class symbol
381389
symbolt new_symbol;
382-
new_symbol.base_name=c.name;
390+
new_symbol.base_name = base_name;
383391
new_symbol.pretty_name=c.name;
384392
new_symbol.name=qualified_classname;
385393
class_type.set(ID_name, new_symbol.name);

src/java_bytecode/java_bytecode_convert_method.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,8 @@ void java_bytecode_convert_method_lazy(
365365

366366
if(is_constructor(method_symbol.base_name))
367367
{
368+
// we use full.class_name.class_name(...) as pretty name
369+
// for constructors
368370
method_symbol.pretty_name=
369371
id2string(class_symbol.pretty_name)+"."+
370372
id2string(class_symbol.base_name)+"()";

0 commit comments

Comments
 (0)