Lines Matching refs:sig
596 for (auto *sig : signatures) {
597 if (auto *concreteSig = ValidateParameterlessConstructor(sig, pos, relationFlags); concreteSig != nullptr) {
619 bool IsSignatureAccessible(Signature *sig, ETSObjectType *containingClass, TypeRelation *relation)
622 if (!sig->HasSignatureFlag(SignatureFlags::PUBLIC | SignatureFlags::PROTECTED | SignatureFlags::PRIVATE |
628 if (sig->HasSignatureFlag(SignatureFlags::INTERNAL) && !sig->HasSignatureFlag(SignatureFlags::PROTECTED)) {
632 if (sig->HasSignatureFlag(SignatureFlags::PUBLIC) || sig->Owner() == containingClass ||
633 (sig->HasSignatureFlag(SignatureFlags::PROTECTED) && relation->IsSupertypeOf(sig->Owner(), containingClass))) {
669 for (auto *sig : signatures) {
671 !IsSignatureAccessible(sig, Context().ContainingClass(), Relation())) {
674 auto *concreteSig = ValidateSignature(std::make_tuple(sig, typeArguments, relationFlags), arguments, pos,
680 !IsSignatureAccessible(sig, Context().ContainingClass(), Relation())) {
784 for (auto *sig : signatures) {
790 mostSpecific = std::any_of(range.first, range.second, [&sig](auto entry) { return entry.second == sig; });
800 mostSpecificSignature = sig;
803 if (mostSpecificSignature->Owner() == sig->Owner()) {
805 if (mostSpecificSignature->Function() == sig->Function()) {
818 for (auto *sig : signatures) {
819 if (Type *sigType = sig->Params().at(idx)->TsType();
822 prevSig = sig;
832 auto [pos, argumentsSize, paramCount, idx, sig] = info;
834 [[maybe_unused]] const bool equalParamSize = sig->Params().size() == paramCount;
837 Type *sigType = sig->Params().at(idx)->TsType();
846 prevSig = sig;
849 auto funcName = sig->Function()->Id()->Name();
851 funcName, prevSig, "` and `", funcName, sig, "`"},
869 for (auto *sig : signatures) {
870 bestSignaturesForParameter.insert({i, sig});
879 for (auto *sig : signatures) {
881 std::make_tuple(pos, argumentsSize, paramCount, i, sig), true);
883 for (auto *sig : signatures) {
885 std::make_tuple(pos, argumentsSize, paramCount, i, sig), false);
888 for (auto *sig : signatures) {
889 Type *sigType = sig->Params().at(i)->TsType();
891 bestSignaturesForParameter.insert({i, sig});
946 Signature *sig = nullptr;
956 sig = ValidateSignatures(signatures, callExpr->TypeParams(), callExpr->Arguments(), pos, "call", reportFlag);
957 return sig;
962 sig = ValidateSignatures(signatures, callExpr->TypeParams(), arguments, pos, "call",
964 if (sig != nullptr) {
967 TypeInference(sig, callExpr->Arguments());
968 return sig;
971 sig = ValidateSignatures(signatures, callExpr->TypeParams(), callExpr->Arguments(), pos, "call", reportFlag);
972 if (sig != nullptr) {
976 return sig;