Lines Matching refs:dummy
154 const DerivedTypeSpec &actual, const DerivedTypeSpec &dummy) { in DefersSameTypeParameters() argument
157 const ParamValue *dummyValue{dummy.FindParameter(pair.first)}; in DefersSameTypeParameters()
165 static void CheckExplicitDataArg(const characteristics::DummyDataObject &dummy, in CheckExplicitDataArg() argument
174 CheckCharacterActual(actual, dummy.type, actualType, context, messages); in CheckExplicitDataArg()
176 ConvertIntegerActual(actual, dummy.type, actualType, messages); in CheckExplicitDataArg()
178 bool typesCompatible{dummy.type.type().IsTkCompatibleWith(actualType.type())}; in CheckExplicitDataArg()
179 if (!typesCompatible && dummy.type.Rank() == 0 && in CheckExplicitDataArg()
183 evaluate::HollerithToBOZ(context, actual, dummy.type.type())}) { in CheckExplicitDataArg()
187 actualType.type() = dummy.type.type(); in CheckExplicitDataArg()
193 } else if (dummy.type.attrs().test( in CheckExplicitDataArg()
195 } else if (dummy.type.Rank() > 0 && in CheckExplicitDataArg()
196 !dummy.type.attrs().test( in CheckExplicitDataArg()
198 !dummy.type.attrs().test( in CheckExplicitDataArg()
208 CheckConformance(messages, dummy.type.shape(), actualType.shape(), in CheckExplicitDataArg()
217 dummy.type.type().AsFortran()); in CheckExplicitDataArg()
221 bool dummyIsPolymorphic{dummy.type.type().IsPolymorphic()}; in CheckExplicitDataArg()
225 bool dummyIsAssumedSize{dummy.type.attrs().test( in CheckExplicitDataArg()
228 dummy.attrs.test(characteristics::DummyDataObject::Attr::Asynchronous)}; in CheckExplicitDataArg()
230 dummy.attrs.test(characteristics::DummyDataObject::Attr::Volatile)}; in CheckExplicitDataArg()
232 dummy.attrs.test(characteristics::DummyDataObject::Attr::Value)}; in CheckExplicitDataArg()
254 if (dummy.type.type().IsAssumedType()) { in CheckExplicitDataArg()
282 if (dummy.intent != common::Intent::In && !dummyIsValue) { in CheckExplicitDataArg()
322 bool dummyIsAssumedRank{dummy.type.attrs().test( in CheckExplicitDataArg()
324 if (dummy.type.attrs().test( in CheckExplicitDataArg()
337 } else if (actualRank == 0 && dummy.type.Rank() > 0) { in CheckExplicitDataArg()
350 !(dummy.type.type().IsAssumedType() && dummyIsAssumedSize) && in CheckExplicitDataArg()
375 IsAllocatable(*actualLastSymbol) && dummy.intent == common::Intent::Out && in CheckExplicitDataArg()
386 if (dummy.intent == common::Intent::Out) { in CheckExplicitDataArg()
388 } else if (dummy.intent == common::Intent::InOut) { in CheckExplicitDataArg()
409 bool dummyIsAssumedShape{dummy.type.attrs().test( in CheckExplicitDataArg()
412 dummy.attrs.test(characteristics::DummyDataObject::Attr::Pointer)}; in CheckExplicitDataArg()
414 dummy.attrs.test(characteristics::DummyDataObject::Attr::Contiguous)}; in CheckExplicitDataArg()
435 dummy.attrs.test(characteristics::DummyDataObject::Attr::Allocatable)}; in CheckExplicitDataArg()
444 dummy.intent != common::Intent::In) { in CheckExplicitDataArg()
450 actualLastSymbol->Corank() != dummy.type.corank()) { in CheckExplicitDataArg()
453 dummyName, dummy.type.corank(), actualLastSymbol->Corank()); in CheckExplicitDataArg()
465 if (dummy.intent == common::Intent::In) { in CheckExplicitDataArg()
467 context, parser::CharBlock{}, dummyName, dummy, actual); in CheckExplicitDataArg()
480 bool dummyIsUnlimited{dummy.type.type().IsUnlimitedPolymorphic()}; in CheckExplicitDataArg()
487 if (dummy.intent == common::Intent::In && typesCompatible) { in CheckExplicitDataArg()
496 if (!actualType.type().IsTkCompatibleWith(dummy.type.type())) { in CheckExplicitDataArg()
497 if (dummy.intent == common::Intent::In) { in CheckExplicitDataArg()
510 *derived, *evaluate::GetDerivedTypeSpec(dummy.type.type()))) { in CheckExplicitDataArg()
514 } else if (dummy.type.type().HasDeferredTypeParameter() != in CheckExplicitDataArg()
523 if (dummy.type.corank() > 0) { in CheckExplicitDataArg()
542 if (actualRank == dummy.type.Rank() && !actualIsContiguous) { in CheckExplicitDataArg()
557 dummy.attrs.test(characteristics::DummyDataObject::Attr::Optional)}; in CheckExplicitDataArg()
568 const characteristics::DummyProcedure &dummy, const std::string &dummyName, in CheckProcedureArg() argument
573 const characteristics::Procedure &interface { dummy.procedure.value() }; in CheckProcedureArg()
576 dummy.attrs.test(characteristics::DummyProcedure::Attr::Pointer)}; in CheckProcedureArg()
653 !dummy.attrs.test( in CheckProcedureArg()
666 dummy.intent != common::Intent::In) { in CheckProcedureArg()
697 const characteristics::DummyArgument &dummy, in CheckExplicitInterfaceArg() argument
703 if (!dummy.name.empty()) { in CheckExplicitInterfaceArg()
704 dummyName += " '"s + parser::ToLowerCaseLetters(dummy.name) + "='"; in CheckExplicitInterfaceArg()
775 [&](const characteristics::DummyProcedure &dummy) { in CheckExplicitInterfaceArg() argument
777 CheckProcedureArg(arg, proc, dummy, dummyName, context); in CheckExplicitInterfaceArg()
784 dummy.u); in CheckExplicitInterfaceArg()
812 for (const auto &dummy : proc.dummyArguments) { in RearrangeArguments() local
813 if (!dummy.name.empty()) { in RearrangeArguments()
814 auto iter{kwArgs.find(dummy.name)}; in RearrangeArguments()
856 const auto &dummy{proc.dummyArguments.at(index++)}; in CheckElementalConformance() local
863 " ('" + dummy.name + "')"}; in CheckElementalConformance()
875 } else if ((dummy.GetIntent() == common::Intent::Out || in CheckElementalConformance()
876 dummy.GetIntent() == common::Intent::InOut) && in CheckElementalConformance()
901 const auto &dummy{proc.dummyArguments.at(index++)}; in CheckExplicitInterface() local
903 CheckExplicitInterfaceArg(*actual, dummy, proc, localContext, scope, in CheckExplicitInterface()
905 } else if (!dummy.IsOptional()) { in CheckExplicitInterface()
906 if (dummy.name.empty()) { in CheckExplicitInterface()
915 dummy.name, index); in CheckExplicitInterface()