Lines Matching full:overridden

117 /// Issue a warning if the parameter of the overridden method is non-escaping
142 const ObjCMethodDecl *Overridden) {
144 if (Overridden->hasRelatedResultType() &&
147 // implies a related result type, and the original (overridden) method has
180 if (ObjCMethodFamily Family = Overridden->getMethodFamily())
181 Diag(Overridden->getLocation(),
183 << /*overridden method*/ 0
186 Diag(Overridden->getLocation(),
191 Overridden->hasAttr<NSReturnsRetainedAttr>())) {
197 Diag(Overridden->getLocation(), diag::note_previous_decl) << "method";
200 Overridden->hasAttr<NSReturnsNotRetainedAttr>())) {
206 Diag(Overridden->getLocation(), diag::note_previous_decl) << "method";
209 ObjCMethodDecl::param_const_iterator oi = Overridden->param_begin(),
210 oe = Overridden->param_end();
2612 ObjCMethodDecl *Overridden,
2615 CheckMethodOverrideReturn(SemaRef, Method, Overridden, IsProtocolMethodDecl,
2619 IF = Overridden->param_begin(), EM = Method->param_end(),
2620 EF = Overridden->param_end();
2622 CheckMethodOverrideParam(SemaRef, Method, Overridden, *IM, *IF,
2626 if (Method->isVariadic() != Overridden->isVariadic()) {
2629 Diag(Overridden->getLocation(), diag::note_previous_declaration);
4002 // they are overridden by an explicit method that is encountered
4287 llvm::SmallSetVector<ObjCMethodDecl*, 4> Overridden;
4326 typedef decltype(Overridden)::iterator iterator;
4327 iterator begin() const { return Overridden.begin(); }
4328 iterator end() const { return Overridden.end(); }
4415 Overridden.insert(meth);
4420 // would have overridden.
4431 ObjCMethodDecl *overridden) {
4432 if (overridden->isDirectMethod()) {
4433 const auto *attr = overridden->getAttr<ObjCDirectAttr>();
4439 << isa<ObjCProtocolDecl>(overridden->getDeclContext());
4440 Diag(overridden->getLocation(), diag::note_previous_declaration);
4455 // Search for overridden methods and merge information down from them.
4463 for (ObjCMethodDecl *overridden : overrides) {
4465 if (isa<ObjCProtocolDecl>(overridden->getDeclContext()) ||
4466 !IsMethodInCurrentClass(overridden) || overridden->isOverriding()) {
4467 CheckObjCMethodDirectOverrides(ObjCMethod, overridden);
4470 // OverrideSearch will return as "overridden" the same method in the
4487 !isa<ObjCCategoryImplDecl>(overridden->getDeclContext())) {
4488 OverrideSearch overrides(SemaRef, overridden);
4494 overridden->setOverriding(true);
4504 // Propagate down the 'related result type' bit from overridden methods.
4505 if (RTC != SemaObjC::RTC_Incompatible && overridden->hasRelatedResultType())
4509 SemaRef.mergeObjCMethodDecls(ObjCMethod, overridden);
4511 if (ObjCMethod->isImplicit() && overridden->isImplicit())
4517 CheckConflictingOverridingMethod(ObjCMethod, overridden,
4518 isa<ObjCProtocolDecl>(overridden->getDeclContext()));
4520 if (CurrentClass && overridden->getDeclContext() != CurrentClass &&
4521 isa<ObjCInterfaceDecl>(overridden->getDeclContext()) &&
4522 !overridden->isImplicit() /* not meant for properties */) {
4525 ObjCMethodDecl::param_iterator PrevI = overridden->param_begin(),
4526 PrevE = overridden->param_end();
4528 assert(PrevI != overridden->param_end() && "Param mismatch");
4536 Diag(overridden->getLocation(), diag::note_previous_declaration);
4868 // made visible yet, so it can be overridden by a later