/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include <string> #include <set>
#include"plugin.hxx"
// Find places where we are returning a pointer to something, where we can be returning a reference. // e.g. // class A { // struct X x; // public: // X* getX() { return &x; } // } // which can be: // X& getX() { return x; }
namespace {
class ReturnByRef: public loplugin::FilteringPlugin<ReturnByRef>
{ public: explicit ReturnByRef(InstantiationData const & data): FilteringPlugin(data) {}
// display the location of the class member declaration so I don't have to search for it by hand auto otherLoc = functionDecl->getCanonicalDecl()->getSourceRange().getBegin(); if (otherLoc != functionDecl->getSourceRange().getBegin())
{
report(
DiagnosticsEngine::Note, "rather return by reference",
functionDecl->getCanonicalDecl()->getSourceRange().getBegin())
<< functionDecl->getCanonicalDecl()->getSourceRange();
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.