Lines Matching defs:dataRef
308 DataRef &&dataRef, std::vector<Subscript> &&subscripts) {
326 std::move(dataRef.u));
460 bool ExpressionAnalyzer::CheckRanks(const DataRef &dataRef) {
499 dataRef.u);
504 bool ExpressionAnalyzer::CheckPolymorphic(const DataRef &dataRef) {
505 if (auto type{DynamicType::From(dataRef.GetLastSymbol())}) {
521 bool ExpressionAnalyzer::CheckDataRef(const DataRef &dataRef) {
523 bool ranksOk{CheckRanks(dataRef)};
524 bool polyOk{CheckPolymorphic(dataRef)};
532 parser::DataRef &dataRef) {
534 std::get_if<common::Indirection<parser::ArrayElement>>(&dataRef.u)}) {
569 if (auto *dataRef{std::get_if<parser::DataRef>(&mutate.u)}) {
571 &dataRef->u)}) {
585 } else if (auto substring{FixMisparsedSubstringDataRef(*dataRef)}) {
601 std::optional<DataRef> dataRef{ExtractDataRef(std::move(result))};
602 if (!dataRef) {
603 dataRef = ExtractDataRef(std::move(result), /*intoSubstring=*/true);
605 if (!dataRef) {
606 dataRef = ExtractDataRef(std::move(result),
609 if (dataRef && !CheckDataRef(*dataRef)) {
1113 if (std::optional<DataRef> dataRef{ExtractDataRef(std::move(*baseExpr))}) {
1114 if (MaybeExpr newBaseExpr{Designate(std::move(*dataRef))}) {
1315 } else if (std::optional<DataRef> dataRef{
1318 std::move(*dataRef), AnalyzeSectionSubscripts(ae.subscripts));
1419 } else if (std::optional<DataRef> dataRef{
1423 CreateComponent(std::move(*dataRef), *sym, *dtSpec->scope())}) {
1441 if (std::optional<DataRef> dataRef{ExtractDataRef(*zExpr)}) {
1450 ComplexPart{std::move(*dataRef), part}});
1471 DataRef *dataRef{&*maybeDataRef};
1474 if (auto *aRef{std::get_if<ArrayRef>(&dataRef->u)}) {
1478 dataRef = &component->base();
1480 dataRef = nullptr;
1483 if (dataRef) {
1484 while (auto *component{std::get_if<Component>(&dataRef->u)}) {
1486 dataRef = &component->base();
1488 if (auto *baseSym{std::get_if<SymbolRef>(&dataRef->u)}) {
2460 std::optional<DataRef> dataRef{ExtractDataRef(std::move(*dtExpr))};
2461 if (dataRef && !CheckDataRef(*dataRef)) {
2464 if (dataRef && dataRef->Rank() > 0) {
2484 } else if (dataRef.has_value()) {
2488 if (auto component{CreateComponent(std::move(*dataRef), *sym,
2500 Expr<SomeDerived>{Designator<SomeDerived>{std::move(*dataRef)}},
3050 if (const auto *dataRef{
3052 if (const auto *name{std::get_if<parser::Name>(&dataRef->u)}) {