Skip to content

Commit 53bc892

Browse files
Add invariant in java_generic_symbol_type
This also adapt unit tests that would make the invariant fail.
1 parent e3f240a commit 53bc892

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/java_bytecode/java_types.cpp

+6-1
Original file line numberDiff line numberDiff line change
@@ -854,7 +854,12 @@ java_generic_symbol_typet::java_generic_symbol_typet(
854854
set(ID_C_java_generic_symbol, true);
855855
const typet &base_type = java_type_from_string(base_ref, class_name_prefix);
856856
PRECONDITION(is_java_generic_type(base_type));
857-
const java_generic_typet gen_base_type = to_java_generic_type(base_type);
857+
const java_generic_typet &gen_base_type = to_java_generic_type(base_type);
858+
INVARIANT(
859+
type.get_identifier() == to_symbol_type(gen_base_type.subtype()).get_identifier(),
860+
"identifier of "+type.pretty()+"\n and identifier of type "+
861+
gen_base_type.subtype().pretty()+"\ncreated by java_type_from_string for "+
862+
base_ref+" should be equal");
858863
generic_types().insert(
859864
generic_types().end(),
860865
gen_base_type.generic_type_arguments().begin(),

unit/java_bytecode/java_types/java_generic_symbol_type.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@
1111

1212
SCENARIO("java_generic_symbol_type", "[core][java_types]")
1313
{
14-
WHEN("MyType is LGenericClass<TX;TY;>;")
14+
GIVEN("LGenericClass<TX;TY;>;")
1515
{
16-
auto symbol_type = symbol_typet("MyType");
16+
auto symbol_type = symbol_typet("java::GenericClass");
1717
const auto generic_symbol_type = java_generic_symbol_typet(
1818
symbol_type, "LGenericClass<TX;TY;>;", "PrefixClassName");
1919

20-
REQUIRE(generic_symbol_type.get_identifier() == "MyType");
20+
REQUIRE(generic_symbol_type.get_identifier() == "java::GenericClass");
2121

2222
auto types = generic_symbol_type.generic_types();
2323
REQUIRE(types.size() == 2);

0 commit comments

Comments
 (0)