mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[CSDiagnostics/Tests] Add tests for any Sendable vs. Any interaction in non-strict concurrency contexts
This commit is contained in:
@@ -1044,6 +1044,34 @@ bool GenericArgumentsMismatchFailure::diagnoseAsError() {
|
||||
break;
|
||||
}
|
||||
|
||||
case ConstraintLocator::Member: {
|
||||
auto *memberLoc = getConstraintLocator(anchor, path);
|
||||
auto selectedOverload = getOverloadChoiceIfAvailable(memberLoc);
|
||||
if (!selectedOverload)
|
||||
return false;
|
||||
|
||||
auto baseTy = selectedOverload->choice.getBaseType()->getRValueType();
|
||||
auto *memberRef = selectedOverload->choice.getDecl();
|
||||
|
||||
if (Mismatches.size() == 1) {
|
||||
auto mismatchIdx = Mismatches.front();
|
||||
auto actualArgTy = getActual()->getGenericArgs()[mismatchIdx];
|
||||
auto requiredArgTy = getRequired()->getGenericArgs()[mismatchIdx];
|
||||
|
||||
emitDiagnostic(diag::types_not_equal_in_decl_ref, memberRef, baseTy,
|
||||
actualArgTy, requiredArgTy);
|
||||
emitDiagnosticAt(memberRef, diag::decl_declared_here, memberRef);
|
||||
return true;
|
||||
}
|
||||
|
||||
emitDiagnostic(
|
||||
diag::cannot_reference_conditional_member_on_base_multiple_mismatches,
|
||||
memberRef, baseTy);
|
||||
emitDiagnosticAt(memberRef, diag::decl_declared_here, memberRef);
|
||||
emitNotesForMismatches();
|
||||
return true;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user