File tree 1 file changed +15
-0
lines changed
1 file changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -981,6 +981,19 @@ class code_typet:public typet
981
981
}
982
982
return parameter_indices;
983
983
}
984
+
985
+ static void check (
986
+ const typet &type,
987
+ const validation_modet vm = validation_modet::INVARIANT)
988
+ {
989
+ DATA_CHECK (
990
+ type.find (ID_parameters) != get_nil_irep (),
991
+ " code type should indicate parameters" );
992
+
993
+ DATA_CHECK (
994
+ type.find (ID_return_type) != get_nil_irep (),
995
+ " code type should indicate return type" );
996
+ }
984
997
};
985
998
986
999
// / Check whether a reference to a typet is a \ref code_typet.
@@ -1003,13 +1016,15 @@ inline bool can_cast_type<code_typet>(const typet &type)
1003
1016
inline const code_typet &to_code_type (const typet &type)
1004
1017
{
1005
1018
PRECONDITION (can_cast_type<code_typet>(type));
1019
+ code_typet::check (type);
1006
1020
return static_cast <const code_typet &>(type);
1007
1021
}
1008
1022
1009
1023
// / \copydoc to_code_type(const typet &)
1010
1024
inline code_typet &to_code_type (typet &type)
1011
1025
{
1012
1026
PRECONDITION (can_cast_type<code_typet>(type));
1027
+ code_typet::check (type);
1013
1028
return static_cast <code_typet &>(type);
1014
1029
}
1015
1030
You can’t perform that action at this time.
0 commit comments