in src/main/abi-symbols/abi-dumper.pl [5950:6018]
sub checkCompleteness($)
{
my $Info = $_[0];
# data types
if(defined $Info->{"Memb"})
{
foreach my $Pos (sort keys(%{$Info->{"Memb"}}))
{
if(defined $Info->{"Memb"}{$Pos}{"type"}) {
checkTypeInfo($Info->{"Memb"}{$Pos}{"type"});
}
}
}
if(defined $Info->{"Base"})
{
foreach my $Bid (sort keys(%{$Info->{"Base"}})) {
checkTypeInfo($Bid);
}
}
if(defined $Info->{"BaseType"}) {
checkTypeInfo($Info->{"BaseType"});
}
if(defined $Info->{"TParam"})
{
foreach my $Pos (sort keys(%{$Info->{"TParam"}}))
{
my $TRef = $Info->{"TParam"}{$Pos};
if(my $Tid = $TRef->{"type"}) {
checkTypeInfo($Tid);
}
else
{
my $TName = $Info->{"TParam"}{$Pos}{"name"};
if($TName=~/\A(true|false|\d.*)\Z/) {
next;
}
if(my $Tid = searchTypeID($TName)) {
checkTypeInfo($Tid);
}
else
{
if(defined $Loud) {
printMsg("WARNING", "missed type $TName");
}
}
}
}
}
# symbols
if(defined $Info->{"Param"})
{
foreach my $Pos (sort keys(%{$Info->{"Param"}}))
{
if(defined $Info->{"Param"}{$Pos}{"type"}) {
checkTypeInfo($Info->{"Param"}{$Pos}{"type"});
}
}
}
if(defined $Info->{"Return"}) {
checkTypeInfo($Info->{"Return"});
}
if(defined $Info->{"Class"}) {
checkTypeInfo($Info->{"Class"});
}
}