Skip to content

Commit e956cba

Browse files
Merge pull request #4980 from NathanJPhillips/cleanup/expose-get_all_generic_parameters
Made get_all_generic_parameters a non-private function
2 parents cf7b9bf + d3f55b5 commit e956cba

File tree

3 files changed

+31
-31
lines changed

3 files changed

+31
-31
lines changed

jbmc/src/java_bytecode/generic_parameter_specialization_map_keys.cpp

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,37 +4,6 @@
44

55
#include <util/range.h>
66

7-
/// \param type: Source type
8-
/// \return The vector of implicitly generic and (explicitly) generic type
9-
/// parameters of the given type.
10-
const std::vector<java_generic_parametert>
11-
get_all_generic_parameters(const typet &type)
12-
{
13-
PRECONDITION(
14-
is_java_generic_class_type(type) ||
15-
is_java_implicitly_generic_class_type(type));
16-
std::vector<java_generic_parametert> generic_parameters;
17-
if(is_java_implicitly_generic_class_type(type))
18-
{
19-
const java_implicitly_generic_class_typet &implicitly_generic_class =
20-
to_java_implicitly_generic_class_type(to_java_class_type(type));
21-
generic_parameters.insert(
22-
generic_parameters.end(),
23-
implicitly_generic_class.implicit_generic_types().begin(),
24-
implicitly_generic_class.implicit_generic_types().end());
25-
}
26-
if(is_java_generic_class_type(type))
27-
{
28-
const java_generic_class_typet &generic_class =
29-
to_java_generic_class_type(to_java_class_type(type));
30-
generic_parameters.insert(
31-
generic_parameters.end(),
32-
generic_class.generic_types().begin(),
33-
generic_class.generic_types().end());
34-
}
35-
return generic_parameters;
36-
}
37-
387
/// Add the parameters and their types for each generic parameter of the
398
/// given generic pointer type to the map.
409
/// Own the keys and pop from their stack on destruction.

jbmc/src/java_bytecode/java_types.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -839,6 +839,31 @@ bool equal_java_types(const typet &type1, const typet &type2)
839839
return (type1 == type2 && arrays_with_same_element_type);
840840
}
841841

842+
std::vector<java_generic_parametert>
843+
get_all_generic_parameters(const typet &type)
844+
{
845+
std::vector<java_generic_parametert> generic_parameters;
846+
if(is_java_implicitly_generic_class_type(type))
847+
{
848+
const java_implicitly_generic_class_typet &implicitly_generic_class =
849+
to_java_implicitly_generic_class_type(to_java_class_type(type));
850+
generic_parameters.insert(
851+
generic_parameters.end(),
852+
implicitly_generic_class.implicit_generic_types().begin(),
853+
implicitly_generic_class.implicit_generic_types().end());
854+
}
855+
if(is_java_generic_class_type(type))
856+
{
857+
const java_generic_class_typet &generic_class =
858+
to_java_generic_class_type(to_java_class_type(type));
859+
generic_parameters.insert(
860+
generic_parameters.end(),
861+
generic_class.generic_types().begin(),
862+
generic_class.generic_types().end());
863+
}
864+
return generic_parameters;
865+
}
866+
842867
void get_dependencies_from_generic_parameters_rec(
843868
const typet &t,
844869
std::set<irep_idt> &refs)

jbmc/src/java_bytecode/java_types.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1051,6 +1051,12 @@ to_java_implicitly_generic_class_type(java_class_typet &type)
10511051
return static_cast<java_implicitly_generic_class_typet &>(type);
10521052
}
10531053

1054+
/// \param type: Source type
1055+
/// \return The vector of implicitly generic and (explicitly) generic type
1056+
/// parameters of the given type.
1057+
std::vector<java_generic_parametert>
1058+
get_all_generic_parameters(const typet &type);
1059+
10541060
/// An exception that is raised for unsupported class signature.
10551061
/// Currently we do not parse multiple bounds.
10561062
class unsupported_java_class_signature_exceptiont:public std::logic_error

0 commit comments

Comments
 (0)