Lines Matching defs:specific
415 // variables in a pure context, but these messages are more specific.
734 // but these messages are more specific.
1131 // or an unrestricted specific intrinsic function.
1140 "Intrinsic procedure '%s' is not an unrestricted specific "
1279 // because it is explicitly legal to *pass* the specific intrinsic
1296 "Intrinsic procedure '%s' is not an unrestricted specific "
1851 if (details.specific()) {
1852 Check(*details.specific());
1864 for (const Symbol &specific : details.specificProcs()) {
1865 if (specific.attrs().test(Attr::ABSTRACT)) {
1867 "Generic interface '%s' must not use abstract interface '%s' as a specific procedure"_err_en_US,
1868 generic.name(), specific.name())}) {
1870 specific.name(), "Definition of '%s'"_en_US, specific.name());
1874 if (specific.attrs().test(Attr::INTRINSIC)) {
1877 specific.name().ToString())};
1880 specific.name(),
1882 specific.name(), generic.name())}) {
1888 specific.name(),
1889 "Procedure '%s' of generic interface '%s' is INTRINSIC but not an unrestricted specific intrinsic function"_port_en_US,
1890 specific.name(), generic.name())}) {
1897 if (IsStmtFunction(specific)) {
1898 if (auto *msg{messages_.Say(specific.name(),
1900 specific.name(), generic.name())}) {
1905 if (const Procedure *procedure{Characterize(specific)}) {
1907 helper.Add(generic, kind, specific, *procedure);
1909 if (auto *msg{messages_.Say(specific.name(),
1911 specific.name(), generic.name())}) {
2002 const Symbol &specific, const Procedure &proc) {
2003 if (context_.HasError(specific)) {
2008 [&](SourceName opName, const Symbol &specific, const Procedure &proc) {
2009 bool arg0Defined{CheckDefinedOperatorArg(opName, specific, proc, 0)};
2010 bool arg1Defined{CheckDefinedOperatorArg(opName, specific, proc, 1)};
2013 if (specific.attrs().test(Attr::NOPASS)) { // C774
2018 const auto *subpDetails{specific.detailsIf<SubprogramDetails>()};
2031 Warn(common::UsageWarning::DefinedOperatorArgs, specific.name(),
2032 std::move(*m), MakeOpName(opName), specific.name()),
2033 specific);
2036 } else if (!checkDefinedOperatorArgs(opName, specific, proc)) {
2043 specific, std::move(*msg), MakeOpName(opName), specific.name());
2044 context_.SetError(specific);
2133 const Symbol &specific, const Procedure &proc) {
2134 if (context_.HasError(specific)) {
2138 if (specific.attrs().test(Attr::NOPASS)) { // C774
2148 bool ok0{CheckDefinedAssignmentArg(specific, proc.dummyArguments[0], 0)};
2149 bool ok1{CheckDefinedAssignmentArg(specific, proc.dummyArguments[1], 1)};
2159 SayWithDeclaration(specific, std::move(msg.value()), specific.name());
2160 context_.SetError(specific);
2468 "Intrinsic procedure '%s' is not a specific intrinsic permitted for use in the definition of binding '%s'"_err_en_US,
2780 const Symbol &specific{*specifics[i]};
2782 if (const Procedure *proc{Characterize(specific)}) {
2784 if (!CheckDefinedAssignment(specific, *proc)) {
2788 if (!CheckDefinedOperator(generic.name(), kind, specific, *proc)) {
2792 helper.Add(generic, kind, specific, *proc);
3341 const Symbol &specific{specRef->get<ProcBindingDetails>().symbol()};
3342 if (specific == proc) { // unambiguous, accept
3345 if (const auto *specDT{GetDtvArgDerivedType(specific)};
3440 "Generic interface '%s' with explicit intrinsic %s of the same name may not have specific procedure '%s' that is a %s"_err_en_US,
3538 const Symbol &specific{*(binding ? &binding->symbol() : &ultimate)};
3545 if (const auto *subpDetails{specific.detailsIf<SubprogramDetails>()}) {
3547 CheckDioArgCount(specific, ioKind, dummyArgs.size());
3553 CheckDioDtvArg(specific, arg, ioKind, symbol);
3557 CheckDefaultIntegerArg(specific, arg, Attr::INTENT_IN);
3564 specific, arg, argCount, Attr::INTENT_IN);
3567 CheckDefaultIntegerArg(specific, arg, Attr::INTENT_OUT);
3574 CheckDioVlistArg(specific, arg, argCount);
3578 specific, arg, argCount, Attr::INTENT_INOUT);
3583 CheckDefaultIntegerArg(specific, arg, Attr::INTENT_OUT);
3588 specific, arg, argCount, Attr::INTENT_INOUT);
3923 // The rules for distinguishing specific procedures (F'2023 15.4.3.4.5)
3954 ? "Generic '%s' may not have specific procedures '%s' and '%s' as their interfaces are not distinguishable"_err_en_US
3955 : "Generic '%s' should not have specific procedures '%s' and '%s' as their interfaces are not distinguishable by the rules in the standard"_port_en_US,
3961 ? "USE-associated generic '%s' should not have specific procedures '%s' and '%s' as their interfaces are not distinguishable"_warn_en_US
3962 : "USE-associated generic '%s' may not have specific procedures '%s' and '%s' as their interfaces are not distinguishable"_err_en_US)
3963 : "USE-associated generic '%s' should not have specific procedures '%s' and '%s' as their interfaces are not distinguishable by the rules in the standard"_port_en_US,