Skip to content

Commit 3f76403

Browse files
Move java_generic_symbol_typet definitions to cpp
1 parent 0c6ad59 commit 3f76403

File tree

2 files changed

+33
-25
lines changed

2 files changed

+33
-25
lines changed

src/java_bytecode/java_types.cpp

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -835,3 +835,34 @@ void get_dependencies_from_generic_parameters(
835835
{
836836
get_dependencies_from_generic_parameters_rec(t, refs);
837837
}
838+
839+
java_generic_symbol_typet::java_generic_symbol_typet(
840+
const symbol_typet &type,
841+
const std::string &base_ref,
842+
const std::string &class_name_prefix)
843+
: symbol_typet(type)
844+
{
845+
set(ID_C_java_generic_symbol, true);
846+
const typet &base_type = java_type_from_string(base_ref, class_name_prefix);
847+
PRECONDITION(is_java_generic_type(base_type));
848+
const java_generic_typet gen_base_type = to_java_generic_type(base_type);
849+
generic_types().insert(
850+
generic_types().end(),
851+
gen_base_type.generic_type_arguments().begin(),
852+
gen_base_type.generic_type_arguments().end());
853+
}
854+
855+
optionalt<size_t> java_generic_symbol_typet::generic_type_index(
856+
const java_generic_parametert &type) const
857+
{
858+
const auto &type_variable = type.type_variable();
859+
const auto &generics = generic_types();
860+
for(std::size_t i = 0; i < generics.size(); ++i)
861+
{
862+
if(
863+
is_java_generic_parameter(generics[i]) &&
864+
to_java_generic_parameter(generics[i]).type_variable() == type_variable)
865+
return i;
866+
}
867+
return {};
868+
}

src/java_bytecode/java_types.h

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -582,18 +582,7 @@ class java_generic_symbol_typet : public symbol_typet
582582
java_generic_symbol_typet(
583583
const symbol_typet &type,
584584
const std::string &base_ref,
585-
const std::string &class_name_prefix)
586-
: symbol_typet(type)
587-
{
588-
set(ID_C_java_generic_symbol, true);
589-
const typet &base_type = java_type_from_string(base_ref, class_name_prefix);
590-
PRECONDITION(is_java_generic_type(base_type));
591-
const java_generic_typet gen_base_type = to_java_generic_type(base_type);
592-
generic_types().insert(
593-
generic_types().end(),
594-
gen_base_type.generic_type_arguments().begin(),
595-
gen_base_type.generic_type_arguments().end());
596-
}
585+
const std::string &class_name_prefix);
597586

598587
const generic_typest &generic_types() const
599588
{
@@ -610,19 +599,7 @@ class java_generic_symbol_typet : public symbol_typet
610599
/// \param type The type we are looking for.
611600
/// \return The index of the type in the vector of generic types.
612601
optionalt<size_t>
613-
generic_type_index(const java_generic_parametert &type) const
614-
{
615-
const auto &type_variable = type.type_variable();
616-
const auto &generics = generic_types();
617-
for(std::size_t i = 0; i < generics.size(); ++i)
618-
{
619-
if(
620-
is_java_generic_parameter(generics[i]) &&
621-
to_java_generic_parameter(generics[i]).type_variable() == type_variable)
622-
return i;
623-
}
624-
return {};
625-
}
602+
generic_type_index(const java_generic_parametert &type) const;
626603
};
627604

628605
/// \param type: the type to check

0 commit comments

Comments
 (0)