Lines Matching defs:component
220 if (auto *component{std::get_if<Component>(&ref.u)}) {
224 return Expr<SomeType>{ProcedureDesignator{std::move(*component)}};
463 [this](const Component &component) {
464 const Symbol &symbol{component.GetLastSymbol()};
466 if (int baseRank{component.base().Rank()}; baseRank > 0) {
467 Say("Reference to whole rank-%d component '%s' of rank-%d array of derived type is not allowed"_err_en_US,
472 return CheckRanks(component.base());
477 if (const auto *component{arrayRef.base().UnwrapComponent()}) {
483 if (int componentBaseRank{component->base().Rank()};
485 Say("Subscripts of component '%s' of rank-%d derived type array have rank %d but must all be scalar"_err_en_US,
486 component->GetLastSymbol().name(), componentBaseRank,
491 return CheckRanks(component->base());
562 // substring -- it looks like a structure component reference of an array
573 parser::CharBlock which{structComponent.component.source};
1320 Say("Subscripts may be applied only to an object, component, or array constant"_err_en_US);
1335 [](Component &&component) {
1336 return NamedEntity{std::move(component)};
1349 const Symbol &component, const semantics::Scope &scope,
1351 if (!C919bAlreadyEnforced && IsAllocatableOrPointer(component) &&
1353 Say("An allocatable or pointer component reference must be applied to a scalar base"_err_en_US);
1355 if (&component.owner() == &scope ||
1356 component.has<semantics::ProcBindingDetails>()) {
1357 return Component{std::move(base), component};
1368 component, *parentScope, C919bAlreadyEnforced);
1377 // Derived type component references and type parameter inquiries
1379 Symbol *sym{sc.component.symbol};
1398 const auto &name{sc.component.source};
1422 if (auto component{
1424 return Designate(DataRef{std::move(*component)});
1431 "Base of component reference must be a data reference"_err_en_US);
1464 Say(name, "derived type required before component reference"_err_en_US);
1477 if (Component *component{aRef->base().UnwrapComponent()}) {
1478 dataRef = &component->base();
1484 while (auto *component{std::get_if<Component>(&dataRef->u)}) {
1485 reversed.push_back(component->GetLastSymbol());
1486 dataRef = &component->base();
1523 // ultimate component is last.
2035 // produces the component list X, A, Y.
2056 // NULL() can be a valid component
2059 for (const auto &component :
2062 std::get<parser::ComponentDataSource>(component.t).v.value()};
2068 if (const auto &kw{std::get<std::optional<parser::Keyword>>(component.t)}) {
2083 "Keyword '%s=' does not name a component of derived type '%s'"_err_en_US,
2089 "Value in structure constructor lacks a component name"_err_en_US);
2105 "Whole parent component '%s' in structure constructor should not be anonymous"_port_en_US,
2133 "Component '%s' conflicts with another component earlier in "
2155 "Type parameter '%s' may not appear as a component of a structure constructor"_err_en_US,
2181 "NULL() with arguments is not standard conforming as the value for allocatable component '%s'"_port_en_US,
2188 "A NULL procedure pointer may not be used as the value for component '%s'"_err_en_US,
2196 "A NULL pointer may not be used as the value for component '%s'"_err_en_US,
2207 "The externally visible object '%s' may not be used in a pure procedure as the value for component '%s' which has the pointer component '%s'"_err_en_US,
2212 // constructors and help semantic checking, unless the component is
2225 "Rank-%d array value is not compatible with scalar component '%s'"_err_en_US,
2232 "component", "value")};
2240 "Scalar value cannot be expanded to shape of array component '%s'"_err_en_US,
2254 "Shape of component '%s' cannot be determined"_err_en_US,
2266 "incompatible with component '%s' of type '%s'"_err_en_US,
2274 "component '%s' of type %s"_err_en_US,
2283 // Ensure that unmentioned component objects have default initializers.
2299 "component '%s'"_err_en_US,
2350 const Symbol &component, bool isPassedObject = true) {
2351 if (component.attrs().test(semantics::Attr::NOPASS)) {
2354 std::optional<int> passIndex{GetPassIndex(component)};
2371 if (auto passName{GetPassName(component)}) {
2380 const std::optional<DynamicType> &baseType, const Symbol &component) {
2381 const auto *binding{component.detailsIf<semantics::ProcBindingDetails>()};
2385 if (!component.attrs().test(semantics::Attr::NON_OVERRIDABLE) &&
2397 if (const Symbol *sym{sc.component.symbol}) {
2403 Say(sc.component.source, "'%s' is not a procedure"_err_en_US,
2404 sc.component.source),
2458 sc.component.symbol = const_cast<Symbol *>(sym);
2471 sc.component.source,
2475 Say(sc.component.source,
2476 "Base of procedure component reference must be scalar"_err_en_US);
2488 if (auto component{CreateComponent(std::move(*dataRef), *sym,
2491 ProcedureDesignator{std::move(*component)},
2495 Say(sc.component.source,
2507 Say(sc.component.source,
2508 "Base of procedure component reference is not a derived-type object"_err_en_US);
3079 return AssumedTypeDummy(x.component);
3762 name = &std::get<parser::ProcComponentRef>(proc.u).v.thing.component;
3816 return pcr.v.thing.component.symbol;