Skip to content

Commit 6469ec1

Browse files
Make explicit type parameters shadow implicit ones with the same names
Fixes problem where outer class type parameters take precedence over inner class ones
1 parent 88a8e8b commit 6469ec1

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

jbmc/src/java_bytecode/java_bytecode_convert_class.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1200,6 +1200,17 @@ void mark_java_implicitly_generic_class_type(
12001200
java_implicitly_generic_class_typet new_class_type(
12011201
class_type, implicit_generic_type_parameters);
12021202

1203+
// Prepend existing parameters so choose those above any inherited
1204+
if(is_java_generic_class_type(class_type))
1205+
{
1206+
const java_generic_class_typet::generic_typest &class_type_params =
1207+
to_java_generic_class_type(class_type).generic_types();
1208+
implicit_generic_type_parameters.insert(
1209+
implicit_generic_type_parameters.begin(),
1210+
class_type_params.begin(),
1211+
class_type_params.end());
1212+
}
1213+
12031214
for(auto &field : new_class_type.components())
12041215
{
12051216
find_and_replace_parameters(

0 commit comments

Comments
 (0)