Lines Matching defs:details

584       const parser::Name &name, D &&details) {
585 return MakeSymbol(name, Attrs{}, std::move(details));
590 const parser::Name &name, const Attrs &attrs, D &&details) {
591 return Resolve(name, MakeSymbol(name.source, attrs, std::move(details)));
596 const SourceName &name, const Attrs &attrs, D &&details) {
602 symbol->set_details(std::move(details));
612 &currScope().MakeSymbol(name, attrs, std::move(details));
614 } else if (derivedType->CanReplaceDetails(details)) {
618 derivedType->set_details(std::move(details));
631 specific = &currScope().MakeSymbol(name, attrs, std::move(details));
640 if (symbol->CanReplaceDetails(details)) {
646 details.set_isDummy(IsDummy(*symbol));
648 symbol->set_details(std::move(details));
670 // replace the old symbol with a new one with correct details
672 auto &result{MakeSymbol(name, attrs, std::move(details))};
1125 } else if (auto *details{symbol.detailsIf<EntityDetails>()}) {
1126 symbol.set_details(T{std::move(*details)});
1132 } else if (auto *details{symbol.detailsIf<UseDetails>()}) {
1135 name.source, GetUsedModule(*details).name());
1136 } else if (auto *details{symbol.detailsIf<SubprogramNameDetails>()}) {
1137 if (details->kind() == SubprogramKind::Module) {
1141 } else if (details->kind() == SubprogramKind::Internal) {
1271 // Creates Block scopes with neither symbol name nor symbol details.
1969 symbol.details());
2431 if (const auto *details{prev.detailsIf<UseDetails>()}) {
2433 .Attach(details->location(),
2435 details->symbol().name(), GetUsedModule(*details).name());
2726 symbol.details());
2865 } else if (auto *details{symbol.detailsIf<EntityDetails>()}) {
2870 symbol.set_details(ObjectEntityDetails{std::move(*details)});
2886 } else if (auto *details{symbol.detailsIf<EntityDetails>()}) {
2894 symbol.set_details(ProcEntityDetails{std::move(*details)});
3320 if (auto *details{localSymbol->detailsIf<UseErrorDetails>()}) {
3321 details->add_occurrence(location, useSymbol);
3452 UseErrorDetails details{localSymbol->get<UseDetails>()};
3453 details.add_occurrence(location, useSymbol);
3454 Symbol *newSymbol{&MakeSymbol(localName, Attrs{}, std::move(details))};
3760 auto &details{symbol.get<ModuleDetails>()};
3762 details.set_scope(&currScope());
3896 auto &details{generic.get<GenericDetails>()};
3898 for (const Symbol &symbol : details.specificProcs()) {
3959 details.AddSpecificProc(*specific, name->source);
3993 auto &details{generic.get<GenericDetails>()};
3994 if (auto *proc{details.CheckSpecific()}) {
4001 auto &specifics{details.specificProcs()};
4003 if (details.derivedType()) {
4015 if (details.derivedType() &&
4021 *details.derivedType()->GetUltimate().scope())
4070 ultimate.details() = UnknownDetails{}; // will be replaced below
4083 auto &details{symbol.get<SubprogramDetails>()};
4093 details.add_dummyArg(dummy);
4103 details.set_result(result);
4306 SubprogramDetails &details{symbol.get<SubprogramDetails>()};
4309 CreateDummyArgument(details, *dummyName);
4311 details.add_alternateReturn();
4330 SubprogramDetails &details{symbol.get<SubprogramDetails>()};
4332 CreateDummyArgument(details, dummyName);
4349 if (details.isFunction()) {
4373 details.set_result(*result);
4414 SubprogramDetails &details, const parser::Name &name) {
4434 details.add_dummyArg(DEREF(dummy));
4807 symbol.details() = std::move(entity);
4856 auto &details{symbol->get<SubprogramDetails>()};
4857 details.set_isInterface();
4867 if (auto *details{genericSymbol.detailsIf<GenericDetails>()}) {
4868 details->AddSpecificProc(*symbol, name.source);
4911 } else if (auto *details{symbol->detailsIf<GenericDetails>()}) {
4913 auto *specific{details->specific()};
4933 details->clear_specific();
4935 } else if (const auto *dType{details->derivedType()}) {
4939 details->clear_derivedType();
4946 if (details->derivedType()) {
4948 SayAlreadyDeclared(name, *details->derivedType());
4950 details->set_specific(Resolve(name, *specific));
5039 if (auto *details{scopeSymbol->detailsIf<DerivedTypeDetails>()}) {
5040 if (details->isDECStructure()) {
5041 details->add_component(symbol);
5106 auto *details{symbol.detailsIf<ObjectEntityDetails>()};
5107 if (!details || symbol.test(Symbol::Flag::CrayPointer) ||
5114 if (details->init() || symbol.test(Symbol::Flag::InDataStmt)) {
5121 if (details->type()) {
5133 details->set_type(*type);
5134 details->set_init(std::move(*folded));
5135 details->set_shape(std::move(*shape));
5152 details->set_init(std::move(*converted));
5245 if (auto *details{symbol->detailsIf<SubprogramDetails>()}) {
5246 if (details->isInterface()) {
5472 if (auto *details{symbol.detailsIf<ProcEntityDetails>()}) {
5476 } else if (interface && (details->procInterface() || details->type())) {
5481 details->set_procInterfaces(
5501 if (auto *details{symbol.detailsIf<ObjectEntityDetails>()}) {
5506 if (details->IsArray()) {
5516 } else if (details->init() || symbol.test(Symbol::Flag::InDataStmt)) {
5519 details->set_shape(arraySpec());
5523 if (details->IsCoarray()) {
5530 details->set_coshape(coarraySpec());
5863 auto &details{scope.symbol()->get<DerivedTypeDetails>()};
5866 if (auto *details{symbol->detailsIf<TypeParamDetails>()}) {
5867 if (!details->attr()) {
5879 details.set_sequence(true);
5885 if (!details.paramDeclOrder().empty()) { // C740
5896 details.set_isForwardReferenced(false);
5938 DerivedTypeDetails &details{symbol.get<DerivedTypeDetails>()};
5939 details.add_component(comp);
5944 if (auto *details{symbol.detailsIf<DerivedTypeDetails>()}) {
5947 details->add_paramNameOrder(*symbol);
6261 if (auto *details{binding->detailsIf<ProcBindingDetails>()}) {
6262 const Symbol &ultimate{details->symbol().GetUltimate()};
6265 details->ReplaceSymbol(procedure);
6268 if (details->symbol().name() != binding->name()) {
6273 binding->name(), details->symbol().name());
6307 if (auto *details{currScope().symbol()->detailsIf<DerivedTypeDetails>()}) {
6318 if (auto pair{details->finals().emplace(subrName.source, *symbol)};
6574 if (auto *details{groupSymbol->detailsIf<NamelistDetails>()}) {
6585 details->add_object(*symbol);
6832 const auto *details{component.detailsIf<ObjectEntityDetails>()};
6834 (details && details->init())) {
6840 if (details) {
6841 if (const auto *type{details->type()}) {
6870 ProcEntityDetails details;
6871 details.set_type(typeSpec);
6872 symbol.set_details(std::move(details));
7101 DerivedTypeDetails details;
7102 details.set_isForwardReferenced(true);
7103 symbol->set_details(std::move(details));
7167 const parser::Name &name, Details &&details) {
7168 return Resolve(name, MakeTypeSymbol(name.source, std::move(details)));
7171 const SourceName &name, Details &&details) {
7185 std::holds_alternative<ProcBindingDetails>(details)) {
7188 Symbol &result{MakeSymbol(name, attrs, std::move(details))};
7689 auto &details{symbol->get<AssocEntityDetails>()};
7699 details.set_rank(*val);
7707 details.set_IsAssumedSize();
7711 details.set_IsAssumedRank();
7782 auto &details{symbol.get<AssocEntityDetails>()};
7783 const MaybeExpr *pexpr{&details.expr()};
8598 if (auto *details{ultimate.detailsIf<ObjectEntityDetails>()}) {
8599 CHECK(!details->init());
8600 details->set_init(std::move(*expr));
8602 } else if (auto *details{ultimate.detailsIf<ProcEntityDetails>()}) {
8605 CHECK(!details->init());
8606 details->set_init(nullptr);
8609 CHECK(!details->init());
8610 details->set_init(*targetSymbol);
8632 auto &details{ultimate.get<ProcEntityDetails>()};
8633 if (details.init()) {
8641 details.set_init(*targetName->symbol);
8644 details.set_init(nullptr);
8663 } else if (auto *details{ultimate.detailsIf<ObjectEntityDetails>()}) {
8664 if (details->init()) {
8671 details->set_unanalyzedPDTComponentInit(&expr.thing.value());
8674 details->set_init(std::move(*folded));
8836 if (auto *details{symbol->detailsIf<ProcEntityDetails>()}) {
8843 details->set_isCUDAKernel();
8962 } else if (const auto *details{symbol.detailsIf<EntityDetails>()}) {
8963 return !details->type();
8964 } else if (const auto *details{symbol.detailsIf<ObjectEntityDetails>()}) {
8965 return !details->type();
8966 } else if (const auto *details{symbol.detailsIf<ProcEntityDetails>()}) {
8967 return !details->procInterface() && !details->type();
9023 DerivedTypeDetails details;
9024 details.set_isForwardReferenced(true);
9025 Resolve(name, MakeSymbol(name, std::move(details)));
9117 if (auto *details{obj.detailsIf<ObjectEntityDetails>()}) {
9118 details->set_commonBlock(commonBlock);
9263 auto *details{symbol ? symbol->detailsIf<SubprogramDetails>() : nullptr};
9264 if (!details || !symbol->scope() ||
9265 &symbol->scope()->parent() != &currScope() || details->isInterface() ||
9266 details->isDummy() || details->entryScope() ||
9267 details->moduleInterface() || symbol->test(Symbol::Flag::Subroutine)) {
9278 details->set_stmtFunction(std::move(*converted));
9285 details->set_stmtFunction(std::move(*expr));
9288 if (!details->stmtFunction()) {
9750 if (auto *details{symbol->detailsIf<SubprogramDetails>()}) {
9751 if (details->isFunction()) {
9752 ConvertToObjectEntity(const_cast<Symbol &>(details->result()));
9756 if (auto attrs{details->cudaSubprogramAttrs()}) {
9823 SubprogramNameDetails details{kind, child};
9825 MakeSymbol(std::get<parser::Name>(entryStmt->t), std::move(details))};
10057 if (auto *details{comp.detailsIf<ObjectEntityDetails>()}) {
10062 details->set_init(std::move(folded));
10130 const auto &details{subprogram.get<SubprogramNameDetails>()};
10131 ProgramTree &node{details.node()};