Lines Matching defs:whyNot
286 std::string *whyNot, std::optional<std::string> *warning) const {
290 if (whyNot) {
291 *whyNot = "incompatible dummy data object shapes";
306 if (whyNot) {
307 *whyNot = "incompatible dummy data object types: "s +
313 if (whyNot) {
314 *whyNot = "incompatible dummy data object polymorphism: "s +
323 if (whyNot) {
324 *whyNot = "assumed-length character vs explicit-length character";
333 if (whyNot) {
334 *whyNot = "constant-length vs non-constant-length character dummy "
339 if (whyNot) {
340 *whyNot = "character dummy arguments with distinct lengths";
348 if (whyNot) {
349 *whyNot = "incompatible dummy data object attributes";
354 if (whyNot) {
355 *whyNot = "incompatible dummy data object intents";
360 if (whyNot) {
361 *whyNot = "incompatible dummy data object coshapes";
366 if (whyNot) {
367 *whyNot = "incompatible !DIR$ IGNORE_TKR directives";
374 if (whyNot) {
375 *whyNot = "incompatible CUDA data attributes";
429 std::string *whyNot) const {
434 if (whyNot) {
435 *whyNot = "a dummy argument has the allocatable, asynchronous, optional, "
444 if (whyNot) {
445 *whyNot = "a dummy argument is assumed-shape, assumed-rank, or a coarray";
449 if (whyNot) {
450 *whyNot = "a dummy argument is polymorphic";
454 if (whyNot) {
455 *whyNot = "a dummy argument has a CUDA data attribute";
462 if (whyNot) {
463 *whyNot = "a dummy argument has derived type parameters";
532 const DummyProcedure &actual, std::string *whyNot) const {
534 if (whyNot) {
535 *whyNot = "incompatible dummy procedure attributes";
540 if (whyNot) {
541 *whyNot = "incompatible dummy procedure intents";
546 /*ignoreImplicitVsExplicit=*/false, whyNot)) {
547 if (whyNot) {
548 *whyNot = "incompatible dummy procedure interfaces: "s + *whyNot;
556 std::string *whyNot) const {
558 if (whyNot) {
559 *whyNot = "a dummy procedure is optional or a pointer";
814 std::string *whyNot, std::optional<std::string> *warning) const {
817 return ifaceData->IsCompatibleWith(*actualData, whyNot, warning);
819 if (whyNot) {
820 *whyNot = "one dummy argument is an object, the other is not";
824 return ifaceProc->IsCompatibleWith(*actualProc, whyNot);
826 if (whyNot) {
827 *whyNot = "one dummy argument is a procedure, the other is not";
834 if (whyNot) {
835 *whyNot = "one dummy argument is an alternate return, the other is not";
974 bool DummyArgument::CanBePassedViaImplicitInterface(std::string *whyNot) const {
976 return object->CanBePassedViaImplicitInterface(whyNot);
978 return proc->CanBePassedViaImplicitInterface(whyNot);
1051 std::string *whyNot) const {
1053 if (whyNot) {
1054 *whyNot = "the function result is a pointer or allocatable";
1058 if (whyNot) {
1059 *whyNot = "the function result has CUDA attributes";
1064 if (whyNot) {
1065 *whyNot = "the function result is an array";
1079 if (whyNot) {
1080 *whyNot = "the function result's length is not constant";
1088 if (whyNot) {
1089 *whyNot = "the function result's length is not known to the caller";
1094 if (whyNot) {
1095 *whyNot = "the function result is polymorphic";
1103 if (whyNot) {
1104 *whyNot = "the function result's derived type has a "
1118 if (whyNot) {
1119 *whyNot = "the function result has unknown type or shape";
1141 const FunctionResult &actual, std::string *whyNot) const {
1147 if (whyNot) {
1148 *whyNot = "function results have incompatible attributes";
1151 if (whyNot) {
1152 *whyNot = "function results have incompatible CUDA data attributes";
1158 if (whyNot) {
1159 *whyNot = "function results have distinct ranks";
1165 if (whyNot) {
1166 *whyNot = "function results have distinct extents (" + *details + ')';
1181 if (whyNot) {
1182 *whyNot = "constant-length vs non-constant-length character "
1186 if (whyNot) {
1187 *whyNot = "character results with distinct lengths";
1197 if (whyNot) {
1198 *whyNot =
1217 if (whyNot) {
1218 *whyNot = "function results have distinct types: "s +
1226 if (whyNot) {
1227 *whyNot = "function result type and shape are not known";
1236 /*ignoreImplicitVsExplicit=*/false, whyNot)) {
1239 if (whyNot) {
1240 *whyNot =
1241 "function results are incompatible procedure pointers: "s + *whyNot;
1244 if (whyNot) {
1245 *whyNot =
1282 bool ignoreImplicitVsExplicit, std::string *whyNot,
1300 if (whyNot) {
1302 *whyNot = "incompatible procedure attributes";
1304 *whyNot += sep + std::string{EnumToString(x)};
1310 if (whyNot) {
1311 *whyNot =
1315 !functionResult->IsCompatibleWith(*actual.functionResult, whyNot)) {
1317 if (whyNot) {
1318 *whyNot = "incompatible CUDA subprogram attributes";
1321 if (whyNot) {
1322 *whyNot = "distinct numbers of dummy arguments";
1334 dummyArguments[j], whyNot, warning ? &gotWarning : nullptr)) {
1335 if (whyNot) {
1336 *whyNot = "incompatible dummy argument #"s + std::to_string(j + 1) +
1337 ": "s + *whyNot;
1463 bool Procedure::CanBeCalledViaImplicitInterface(std::string *whyNot) const {
1465 if (whyNot) {
1466 *whyNot = "the procedure is elemental";
1470 if (whyNot) {
1471 *whyNot = "the procedure is BIND(C)";
1477 if (whyNot) {
1478 *whyNot = "the procedure is CUDA but neither HOST nor GLOBAL";
1482 !functionResult->CanBeReturnedViaImplicitInterface(whyNot)) {
1486 if (!arg.CanBePassedViaImplicitInterface(whyNot)) {