const SourceName &symbolName{info.symbolName()};
bool isPrivate{accessSpec ? accessSpec->v == parser::AccessSpec::Kind::Private
: derivedTypeInfo_.privateBindings};
- const SymbolList *inheritedProcs{nullptr}; // specific procs from parent type
auto *genericSymbol{FindInScope(currScope(), symbolName)};
if (genericSymbol) {
if (!genericSymbol->has<GenericBindingDetails>()) {
FindInTypeOrParents(currScope(), symbolName)}) {
// look in parent types:
if (inheritedSymbol->has<GenericBindingDetails>()) {
- inheritedProcs =
- &inheritedSymbol->get<GenericBindingDetails>().specificProcs();
CheckAccessibility(symbolName, isPrivate, *inheritedSymbol);
}
}
}
}
auto &details{genericSymbol->get<GenericBindingDetails>()};
- if (inheritedProcs) {
- details.add_specificProcs(*inheritedProcs);
- }
details.add_specificProcs(specificProcs);
info.Resolve(genericSymbol);
return false;