diff --git a/include/swift/AST/DiagnosticsSema.def b/include/swift/AST/DiagnosticsSema.def index f3e17a65aebd7..2c314662bd3d6 100644 --- a/include/swift/AST/DiagnosticsSema.def +++ b/include/swift/AST/DiagnosticsSema.def @@ -27,13 +27,17 @@ DIAG(REMARK,ID,Options,Text,Signature) #endif NOTE(decl_declared_here,none, + "%0 declared here", (const ValueDecl *)) +NOTE(decl_declared_here_base,none, + "%base0 declared here", (const ValueDecl *)) +NOTE(name_declared_here,none, "%0 declared here", (DeclName)) NOTE(kind_declared_here,none, "%0 declared here", (DescriptiveDeclKind)) NOTE(descriptive_decl_declared_here,none, "'%0' declared here", (StringRef)) NOTE(implicit_member_declared_here,none, - "%1 '%0' is implicitly declared", (StringRef, StringRef)) + "%kindbase0 is implicitly declared", (const ValueDecl *)) NOTE(extended_type_declared_here,none, "extended type declared here", ()) NOTE(opaque_return_type_declared_here,none, @@ -1040,7 +1044,7 @@ ERROR(cannot_find_type_in_scope,none, ERROR(cannot_find_type_in_scope_did_you_mean,none, "cannot find type %0 in scope; did you mean to use '%1'?", (DeclNameRef, StringRef)) NOTE(note_typo_candidate_implicit_member,none, - "did you mean the implicitly-synthesized %1 '%0'?", (StringRef, StringRef)) + "did you mean the implicitly-synthesized %kindbase0?", (const ValueDecl *)) NOTE(note_remapped_type,none, "did you mean to use '%0'?", (StringRef)) NOTE(note_module_as_type,none, diff --git a/lib/AST/RequirementMachine/RequirementLowering.cpp b/lib/AST/RequirementMachine/RequirementLowering.cpp index 51c8b9e2a50b1..aa576f7d89fc1 100644 --- a/lib/AST/RequirementMachine/RequirementLowering.cpp +++ b/lib/AST/RequirementMachine/RequirementLowering.cpp @@ -1023,7 +1023,7 @@ TypeAliasRequirementsRequest::evaluate(Evaluator &evaluator, .fixItRemove(assocTypeDecl->getSourceRange()); ctx.Diags.diagnose(inheritedAssocTypeDecl, diag::decl_declared_here, - inheritedAssocTypeDecl->getName()); + inheritedAssocTypeDecl); shouldWarnAboutRedeclaration = false; } @@ -1099,7 +1099,7 @@ TypeAliasRequirementsRequest::evaluate(Evaluator &evaluator, getConcreteTypeReq(type, fixItWhere.Item)) .fixItRemove(type->getSourceRange()); ctx.Diags.diagnose(inheritedAssocTypeDecl, diag::decl_declared_here, - inheritedAssocTypeDecl->getName()); + inheritedAssocTypeDecl); shouldWarnAboutRedeclaration = false; } diff --git a/lib/Sema/CSApply.cpp b/lib/Sema/CSApply.cpp index 85d34bda37c2b..e3c60e802ad8c 100644 --- a/lib/Sema/CSApply.cpp +++ b/lib/Sema/CSApply.cpp @@ -4829,7 +4829,7 @@ namespace { func->getDeclContext()->isModuleScopeContext(), func->getName()) .highlight(subExpr->getSourceRange()); - de.diagnose(func, diag::decl_declared_here, func->getName()); + de.diagnose(func, diag::decl_declared_here, func); return E; } @@ -4864,7 +4864,7 @@ namespace { de.diagnose(E->getLoc(), diag::expr_selector_not_property, isa(var), var->getName()) .highlight(subExpr->getSourceRange()); - de.diagnose(var, diag::decl_declared_here, var->getName()); + de.diagnose(var, diag::decl_declared_here, var); return E; } @@ -4916,7 +4916,7 @@ namespace { if (!var->isSettable(dc)) { de.diagnose(E->getLoc(), diag::expr_selector_property_not_settable, var); - de.diagnose(var, diag::decl_declared_here, var->getName()); + de.diagnose(var, diag::decl_declared_here, var); return E; } @@ -4924,7 +4924,7 @@ namespace { if (!var->isSetterAccessibleFrom(dc)) { de.diagnose(E->getLoc(), diag::expr_selector_property_setter_inaccessible, var); - de.diagnose(var, diag::decl_declared_here, var->getName()); + de.diagnose(var, diag::decl_declared_here, var); return E; } @@ -4935,8 +4935,7 @@ namespace { // Cannot reference with #selector. de.diagnose(E->getLoc(), diag::expr_selector_no_declaration) .highlight(subExpr->getSourceRange()); - de.diagnose(foundDecl, diag::decl_declared_here, - foundDecl->getName()); + de.diagnose(foundDecl, diag::decl_declared_here, foundDecl); return E; } assert(method && "Didn't find a method?"); diff --git a/lib/Sema/CSDiagnostics.cpp b/lib/Sema/CSDiagnostics.cpp index 019abecd21c24..7c7fb6a0f3b9a 100644 --- a/lib/Sema/CSDiagnostics.cpp +++ b/lib/Sema/CSDiagnostics.cpp @@ -1867,8 +1867,7 @@ bool RValueTreatedAsLValueFailure::diagnoseAsError() { if (auto overload = getOverloadChoiceIfAvailable( getConstraintLocator(member, ConstraintLocator::Member))) { if (auto *ref = overload->choice.getDeclOrNull()) - emitDiagnosticAt(ref, diag::decl_declared_here, - ref->getName()); + emitDiagnosticAt(ref, diag::decl_declared_here, ref); } return true; } @@ -5066,7 +5065,7 @@ bool MissingArgumentsFailure::diagnoseAsError() { if (auto selectedOverload = getCalleeOverloadChoiceIfAvailable(locator)) { if (auto *decl = selectedOverload->choice.getDeclOrNull()) { - emitDiagnosticAt(decl, diag::decl_declared_here, decl->getName()); + emitDiagnosticAt(decl, diag::decl_declared_here, decl); } } @@ -5234,7 +5233,7 @@ bool MissingArgumentsFailure::diagnoseSingleMissingArgument() const { if (auto selectedOverload = getCalleeOverloadChoiceIfAvailable(getLocator())) { if (auto *decl = selectedOverload->choice.getDeclOrNull()) { - emitDiagnosticAt(decl, diag::decl_declared_here, decl->getName()); + emitDiagnosticAt(decl, diag::decl_declared_here, decl); } } @@ -5380,7 +5379,7 @@ bool MissingArgumentsFailure::diagnoseInvalidTupleDestructuring() const { diagnostic.flush(); // Add a note which points to the overload choice location. - emitDiagnosticAt(decl, diag::decl_declared_here, decl->getName()); + emitDiagnosticAt(decl, diag::decl_declared_here, decl); return true; } @@ -5870,7 +5869,7 @@ bool ExtraneousArgumentsFailure::diagnoseAsError() { if (auto overload = getCalleeOverloadChoiceIfAvailable(getLocator())) { if (auto *decl = overload->choice.getDeclOrNull()) { - emitDiagnosticAt(decl, diag::decl_declared_here, decl->getName()); + emitDiagnosticAt(decl, diag::decl_declared_here, decl); } } @@ -5999,7 +5998,7 @@ bool InaccessibleMemberFailure::diagnoseAsError() { .highlight(nameLoc.getSourceRange()); } - emitDiagnosticAt(Member, diag::decl_declared_here, Member->getName()); + emitDiagnosticAt(Member, diag::decl_declared_here, Member); return true; } @@ -7457,7 +7456,7 @@ bool ArgumentMismatchFailure::diagnoseTrailingClosureMismatch() const { if (auto overload = getCalleeOverloadChoiceIfAvailable(getLocator())) { if (auto *decl = overload->choice.getDeclOrNull()) { - emitDiagnosticAt(decl, diag::decl_declared_here, decl->getName()); + emitDiagnosticAt(decl, diag::decl_declared_here, decl); } } @@ -8048,7 +8047,7 @@ bool MissingQualifierInMemberRefFailure::diagnoseAsError() { choice->getDescriptiveKind(), qualifier) .fixItInsert(UDE->getStartLoc(), namePlusDot); - emitDiagnosticAt(choice, diag::decl_declared_here, choice->getName()); + emitDiagnosticAt(choice, diag::decl_declared_here, choice); return true; } @@ -8276,7 +8275,7 @@ bool TrailingClosureRequiresExplicitLabel::diagnoseAsError() { } if (auto *callee = argInfo.getCallee()) { - emitDiagnosticAt(callee, diag::decl_declared_here, callee->getName()); + emitDiagnosticAt(callee, diag::decl_declared_here, callee); } return true; @@ -8474,7 +8473,7 @@ bool ReferenceToInvalidDeclaration::diagnoseAsError() { // about reference to an invalid declaration. emitDiagnostic(diag::reference_to_invalid_decl, decl->getName()); - emitDiagnosticAt(decl, diag::decl_declared_here, decl->getName()); + emitDiagnosticAt(decl, diag::decl_declared_here, decl); return true; } @@ -9102,7 +9101,7 @@ bool DestructureTupleToUseWithPackExpansionParameter::diagnoseAsError() { return true; if (auto *decl = selectedOverload->choice.getDeclOrNull()) { - emitDiagnosticAt(decl, diag::decl_declared_here, decl->getName()); + emitDiagnosticAt(decl, diag::decl_declared_here, decl); } return true; diff --git a/lib/Sema/ImportResolution.cpp b/lib/Sema/ImportResolution.cpp index 6d8f5c8879b42..00ae127c5ee83 100644 --- a/lib/Sema/ImportResolution.cpp +++ b/lib/Sema/ImportResolution.cpp @@ -1181,7 +1181,7 @@ ScopedImportLookupRequest::evaluate(Evaluator &evaluator, if (decls.size() == 1) ctx.Diags.diagnose(decls.front(), diag::decl_declared_here, - decls.front()->getName()); + decls.front()); } return ctx.AllocateCopy(decls); } diff --git a/lib/Sema/MiscDiagnostics.cpp b/lib/Sema/MiscDiagnostics.cpp index edb637907cccb..ad826213ed951 100644 --- a/lib/Sema/MiscDiagnostics.cpp +++ b/lib/Sema/MiscDiagnostics.cpp @@ -603,8 +603,7 @@ static void diagSyntacticUseRestrictions(const Expr *E, const DeclContext *DC, .fixItInsertAfter(arg->getEndLoc(), ")"); // Point to callee parameter - Ctx.Diags.diagnose(calleeParam, diag::decl_declared_here, - calleeParam->getName()); + Ctx.Diags.diagnose(calleeParam, diag::decl_declared_here, calleeParam); } llvm::Optional @@ -787,7 +786,7 @@ static void diagSyntacticUseRestrictions(const Expr *E, const DeclContext *DC, VD->getBaseIdentifier(), VD->getDescriptiveKind(), declParent); - Ctx.Diags.diagnose(VD, diag::decl_declared_here, VD->getName()); + Ctx.Diags.diagnose(VD, diag::decl_declared_here, VD); if (VD->getDeclContext()->isTypeContext()) { Ctx.Diags.diagnose(DRE->getLoc(), diag::fix_unqualified_access_member) @@ -2378,7 +2377,7 @@ static void diagnoseUnownedImmediateDeallocationImpl(ASTContext &ctx, ctx.Diags.diagnose(diagLoc, diag::unowned_assignment_requires_strong) .highlight(diagRange); - ctx.Diags.diagnose(varDecl, diag::decl_declared_here, varDecl->getName()); + ctx.Diags.diagnose(varDecl, diag::decl_declared_here, varDecl); } void swift::diagnoseUnownedImmediateDeallocation(ASTContext &ctx, diff --git a/lib/Sema/PreCheckExpr.cpp b/lib/Sema/PreCheckExpr.cpp index f74a70952598a..024e18d020c0f 100644 --- a/lib/Sema/PreCheckExpr.cpp +++ b/lib/Sema/PreCheckExpr.cpp @@ -483,7 +483,7 @@ Expr *TypeChecker::resolveDeclRefExpr(UnresolvedDeclRefExpr *UDRE, if (Lookup.outerResults().empty()) { Context.Diags.diagnose(Loc, diag::use_local_before_declaration, Name); Context.Diags.diagnose(innerDecl, diag::decl_declared_here, - localDeclAfterUse->getName()); + localDeclAfterUse); Expr *error = new (Context) ErrorExpr(UDRE->getSourceRange()); return error; } @@ -528,7 +528,7 @@ Expr *TypeChecker::resolveDeclRefExpr(UnresolvedDeclRefExpr *UDRE, // module we could offer a fix-it. for (auto lookupResult : inaccessibleResults) { auto *VD = lookupResult.getValueDecl(); - VD->diagnose(diag::decl_declared_here, VD->getName()); + VD->diagnose(diag::decl_declared_here, VD); } // Don't try to recover here; we'll get more access-related diagnostics @@ -796,7 +796,7 @@ Expr *TypeChecker::resolveDeclRefExpr(UnresolvedDeclRefExpr *UDRE, Context.Diags.diagnose(Loc, diag::ambiguous_decl_ref, Name); for (auto Result : Lookup) { auto *Decl = Result.getValueDecl(); - Context.Diags.diagnose(Decl, diag::decl_declared_here, Decl->getName()); + Context.Diags.diagnose(Decl, diag::decl_declared_here, Decl); } return new (Context) ErrorExpr(UDRE->getSourceRange()); } diff --git a/lib/Sema/TypeCheckAccess.cpp b/lib/Sema/TypeCheckAccess.cpp index 22e5e4b7452d3..bcf66b873ff4e 100644 --- a/lib/Sema/TypeCheckAccess.cpp +++ b/lib/Sema/TypeCheckAccess.cpp @@ -2263,7 +2263,7 @@ class DeclAvailabilityChecker : public DeclVisitor { if (refRange.isValid()) diag.highlight(refRange); diag.flush(); - PGD->diagnose(diag::decl_declared_here, PGD->getName()); + PGD->diagnose(diag::name_declared_here, PGD->getName()); } void visitInfixOperatorDecl(InfixOperatorDecl *IOD) { diff --git a/lib/Sema/TypeCheckAttr.cpp b/lib/Sema/TypeCheckAttr.cpp index f1ebc252bbe05..e0c4482ee8555 100644 --- a/lib/Sema/TypeCheckAttr.cpp +++ b/lib/Sema/TypeCheckAttr.cpp @@ -1483,14 +1483,14 @@ visitObjCImplementationAttr(ObjCImplementationAttr *attr) { diag::attr_objc_implementation_must_extend_class, ED->getExtendedNominal()); ED->getExtendedNominal()->diagnose(diag::decl_declared_here, - ED->getExtendedNominal()->getName()); + ED->getExtendedNominal()); return; } if (!CD->hasClangNode()) { diagnoseAndRemoveAttr(attr, diag::attr_objc_implementation_must_be_imported, CD); - CD->diagnose(diag::decl_declared_here, CD->getName()); + CD->diagnose(diag::decl_declared_here, CD); return; } @@ -3946,7 +3946,7 @@ void AttributeChecker::visitCustomAttr(CustomAttr *attr) { } diagnose(attr->getLocation(), diag::nominal_type_not_attribute, nominal); - nominal->diagnose(diag::decl_declared_here, nominal->getName()); + nominal->diagnose(diag::decl_declared_here, nominal); attr->setInvalid(); } @@ -5952,8 +5952,7 @@ static bool typeCheckDerivativeAttr(DerivativeAttr *attr) { diags.diagnose(originalName.Loc, diag::derivative_attr_original_stored_property_unsupported, originalName.Name); - diags.diagnose(originalAFD->getLoc(), diag::decl_declared_here, - asd->getName()); + diags.diagnose(originalAFD->getLoc(), diag::decl_declared_here, asd); return true; } // Diagnose original class property and subscript setters. @@ -5962,8 +5961,7 @@ static bool typeCheckDerivativeAttr(DerivativeAttr *attr) { accessorDecl->getAccessorKind() == AccessorKind::Set) { diags.diagnose(originalName.Loc, diag::derivative_attr_class_setter_unsupported); - diags.diagnose(originalAFD->getLoc(), diag::decl_declared_here, - asd->getName()); + diags.diagnose(originalAFD->getLoc(), diag::decl_declared_here, asd); return true; } } @@ -6844,8 +6842,7 @@ void AttributeChecker::visitMarkerAttr(MarkerAttr *attr) { proto->diagnose( diag::marker_protocol_inherit_nonmarker, proto->getName(), inheritedProto->getName()); - inheritedProto->diagnose( - diag::decl_declared_here, inheritedProto->getName()); + inheritedProto->diagnose( diag::decl_declared_here, inheritedProto); } } @@ -7611,7 +7608,7 @@ ArrayRef InitAccessorReferencedVariablesRequest::evaluate( DeclNameRef(name)); for (auto *choice : propertyResults) { - ctx.Diags.diagnose(choice, diag::decl_declared_here, choice->getName()); + ctx.Diags.diagnose(choice, diag::decl_declared_here, choice); } failed = true; diff --git a/lib/Sema/TypeCheckAvailability.cpp b/lib/Sema/TypeCheckAvailability.cpp index 01fa83a09072c..94e7f12ee50a9 100644 --- a/lib/Sema/TypeCheckAvailability.cpp +++ b/lib/Sema/TypeCheckAvailability.cpp @@ -3573,7 +3573,6 @@ diagnoseDeclAsyncAvailability(const ValueDecl *D, SourceRange R, if (const AbstractFunctionDecl *asyncAlt = afd->getAsyncAlternative()) { SourceLoc diagLoc = call ? call->getLoc() : R.Start; ctx.Diags.diagnose(diagLoc, diag::warn_use_async_alternative); - if (auto *accessor = dyn_cast(asyncAlt)) { SmallString<32> name; llvm::raw_svector_ostream os(name); @@ -3581,8 +3580,7 @@ diagnoseDeclAsyncAvailability(const ValueDecl *D, SourceRange R, ctx.Diags.diagnose(asyncAlt->getLoc(), diag::descriptive_decl_declared_here, name); } else { - ctx.Diags.diagnose(asyncAlt->getLoc(), diag::decl_declared_here, - asyncAlt->getName()); + asyncAlt->diagnose(diag::decl_declared_here, asyncAlt); } } } @@ -3612,7 +3610,7 @@ diagnoseDeclAsyncAvailability(const ValueDecl *D, SourceRange R, ctx.Diags .diagnose(diagLoc, diag::async_unavailable_decl, D, attr->Message) .warnUntilSwiftVersion(6); - D->diagnose(diag::decl_declared_here, D->getName()); + D->diagnose(diag::decl_declared_here, D); return true; } diff --git a/lib/Sema/TypeCheckCaptures.cpp b/lib/Sema/TypeCheckCaptures.cpp index 7a2fb786d1cc4..c0e193f712ee1 100644 --- a/lib/Sema/TypeCheckCaptures.cpp +++ b/lib/Sema/TypeCheckCaptures.cpp @@ -308,7 +308,7 @@ class FindCapturedVars : public ASTWalker { NTD->diagnose(diag::kind_declared_here, DescriptiveDeclKind::Type); - D->diagnose(diag::decl_declared_here, D->getName()); + D->diagnose(diag::decl_declared_here, D); return Action::SkipChildren(DRE); } } diff --git a/lib/Sema/TypeCheckExprObjC.cpp b/lib/Sema/TypeCheckExprObjC.cpp index 2d630f903c003..a6cb3f28ab272 100644 --- a/lib/Sema/TypeCheckExprObjC.cpp +++ b/lib/Sema/TypeCheckExprObjC.cpp @@ -313,7 +313,7 @@ llvm::Optional TypeChecker::checkObjCKeyPathExpr(DeclContext *dc, for (auto result : lookup) { diags.diagnose(result.getValueDecl(), diag::decl_declared_here, - result.getValueDecl()->getName()); + result.getValueDecl()); } isInvalid = true; break; diff --git a/lib/Sema/TypeCheckMacros.cpp b/lib/Sema/TypeCheckMacros.cpp index 105c4d2ef0b6a..017a67ed6b771 100644 --- a/lib/Sema/TypeCheckMacros.cpp +++ b/lib/Sema/TypeCheckMacros.cpp @@ -931,7 +931,7 @@ evaluateFreestandingMacro(FreestandingMacroExpansion *expansion, ctx.Diags.diagnose(loc, diag::external_macro_not_found, external.moduleName.str(), external.macroTypeName.str(), macro->getName()); - macro->diagnose(diag::decl_declared_here, macro->getName()); + macro->diagnose(diag::decl_declared_here, macro); return nullptr; } @@ -1166,7 +1166,7 @@ static SourceFile *evaluateAttachedMacro(MacroDecl *macro, Decl *attachedTo, external.macroTypeName.str(), macro->getName() ); - macro->diagnose(diag::decl_declared_here, macro->getName()); + macro->diagnose(diag::decl_declared_here, macro); return nullptr; } diff --git a/lib/Sema/TypeCheckNameLookup.cpp b/lib/Sema/TypeCheckNameLookup.cpp index becf7a34dff17..caa31a0e2a0e3 100644 --- a/lib/Sema/TypeCheckNameLookup.cpp +++ b/lib/Sema/TypeCheckNameLookup.cpp @@ -671,19 +671,14 @@ noteTypoCorrection(DeclNameLoc loc, ValueDecl *decl, } if (Decl *parentDecl = findExplicitParentForImplicitDecl(decl)) { - StringRef kind = (isa(decl) ? "property" : - isa(decl) ? "initializer" : - isa(decl) ? "method" : - "member"); - return parentDecl->diagnose( wasClaimed ? diag::implicit_member_declared_here : diag::note_typo_candidate_implicit_member, - decl->getBaseName().userFacingName(), kind); + decl); } if (wasClaimed) { - return decl->diagnose(diag::decl_declared_here, decl->getBaseName()); + return decl->diagnose(diag::decl_declared_here_base, decl); } else { return decl->diagnose(diag::note_typo_candidate, decl->getBaseName().userFacingName()); diff --git a/lib/Sema/TypeCheckPattern.cpp b/lib/Sema/TypeCheckPattern.cpp index f4268577fde83..33519b7bdf03b 100644 --- a/lib/Sema/TypeCheckPattern.cpp +++ b/lib/Sema/TypeCheckPattern.cpp @@ -1030,8 +1030,7 @@ void repairTupleOrAssociatedValuePatternIfApplicable( } if (addDeclNote) - DE.diagnose(enumCase->getStartLoc(), diag::decl_declared_here, - enumCase->getName()); + DE.diagnose(enumCase->getStartLoc(), diag::decl_declared_here, enumCase); } NullablePtr TypeChecker::trySimplifyExprPattern(ExprPattern *EP, diff --git a/lib/Sema/TypeCheckPropertyWrapper.cpp b/lib/Sema/TypeCheckPropertyWrapper.cpp index 79dbcded51ffb..23003e5c7b29d 100644 --- a/lib/Sema/TypeCheckPropertyWrapper.cpp +++ b/lib/Sema/TypeCheckPropertyWrapper.cpp @@ -239,7 +239,7 @@ findSuitableWrapperInit(ASTContext &ctx, NominalTypeDecl *nominal, init->diagnose(diag::property_wrapper_wrong_initial_value_init, init->getName(), paramType, valueVar->getValueInterfaceType()); - valueVar->diagnose(diag::decl_declared_here, valueVar->getName()); + valueVar->diagnose(diag::decl_declared_here, valueVar); break; } } diff --git a/lib/Sema/TypeCheckProtocol.cpp b/lib/Sema/TypeCheckProtocol.cpp index 4dd05d25a54b1..22bbe38b5e1a3 100644 --- a/lib/Sema/TypeCheckProtocol.cpp +++ b/lib/Sema/TypeCheckProtocol.cpp @@ -2983,7 +2983,7 @@ static void emitDeclaredHereIfNeeded(DiagnosticEngine &diags, return; if (mainDiagLoc == value->getLoc()) return; - diags.diagnose(value, diag::decl_declared_here, value->getName()); + diags.diagnose(value, diag::decl_declared_here, value); } /// Whether this declaration has the 'distributed' modifier on it. @@ -3246,7 +3246,7 @@ ConformanceChecker::checkActorIsolation(ValueDecl *requirement, diag.fixItInsert(insertLoc, modifiers); } } else { - requirement->diagnose(diag::decl_declared_here, requirement->getName()); + requirement->diagnose(diag::decl_declared_here, requirement); } return llvm::None; @@ -4090,7 +4090,7 @@ void ConformanceChecker::checkNonFinalClassWitness(ValueDecl *requirement, // defined. fixItDiag.value().flush(); fixItDiag.emplace(diags.diagnose(ctor, diag::decl_declared_here, - ctor->getName())); + ctor)); } if (!inExtension) { fixItDiag->fixItInsert(ctor->getAttributeInsertionLoc(true), @@ -4197,8 +4197,7 @@ void ConformanceChecker::checkNonFinalClassWitness(ValueDecl *requirement, getProtocolRequirementKind(requirement), requirement->getName(), conformance->getType()); - diags.diagnose(witness, diag::decl_declared_here, - witness->getName()); + diags.diagnose(witness, diag::decl_declared_here, witness); }); } } @@ -4283,8 +4282,7 @@ ConformanceChecker::resolveWitnessViaLookup(ValueDecl *requirement) { fixDeclarationName(diag, witness, requirement->getName()); } else { diag.flush(); - diags.diagnose(witness, diag::decl_declared_here, - witness->getName()); + diags.diagnose(witness, diag::decl_declared_here, witness); } } @@ -4431,8 +4429,7 @@ ConformanceChecker::resolveWitnessViaLookup(ValueDecl *requirement) { addOptionalityFixIts(adjustments, ctx, witness, diag); } else { diag.flush(); - diags.diagnose(witness, diag::decl_declared_here, - witness->getName()); + diags.diagnose(witness, diag::decl_declared_here, witness); } } diff --git a/lib/Sema/TypeCheckStmt.cpp b/lib/Sema/TypeCheckStmt.cpp index 12d3967452362..9ae038e41e03c 100644 --- a/lib/Sema/TypeCheckStmt.cpp +++ b/lib/Sema/TypeCheckStmt.cpp @@ -606,7 +606,7 @@ emitUnresolvedLabelDiagnostics(DiagnosticEngine &DE, .fixItReplace(SourceRange(targetLoc), corrections.begin()->Value->getLabelInfo().Name.str()); DE.diagnose(corrections.begin()->Value->getLabelInfo().Loc, - diag::decl_declared_here, + diag::name_declared_here, corrections.begin()->Value->getLabelInfo().Name); } else { // If we have multiple corrections or none, produce a generic diagnostic diff --git a/lib/Sema/TypeCheckType.cpp b/lib/Sema/TypeCheckType.cpp index 1af09c0419517..8395b4cd58694 100644 --- a/lib/Sema/TypeCheckType.cpp +++ b/lib/Sema/TypeCheckType.cpp @@ -742,8 +742,7 @@ static Type applyGenericArguments(Type type, TypeResolution resolution, protoType) .fixItRemove(generic->getAngleBrackets()); if (!protoDecl->isImplicit()) { - diags.diagnose(protoDecl, diag::decl_declared_here, - protoDecl->getName()); + diags.diagnose(protoDecl, diag::decl_declared_here, protoDecl); } return ErrorType::get(ctx); } @@ -1471,8 +1470,7 @@ static Type diagnoseUnknownType(TypeResolution resolution, // Note where the type was defined, this can help diagnose if the user // expected name lookup to find a module when there's a conflicting type. if (auto typeDecl = parentType->getNominalOrBoundGenericNominal()) { - ctx.Diags.diagnose(typeDecl, diag::decl_declared_here, - typeDecl->getName()); + ctx.Diags.diagnose(typeDecl, diag::decl_declared_here, typeDecl); } } }