/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* Based on LLVM/Clang.
*
* This file is distributed under the University of Illinois Open Source
* License. See LICENSE.TXT for details.
*
*/
#ifndef TUTORIAL3_H
#define TUTORIAL3_H
#include "plugin.hxx"
namespace loplugin
{
// Similar like for Tutorial2, but this time the base class is RewritePlugin.
class Tutorial3
: public loplugin::FilteringRewritePlugin< Tutorial3 >
{
public:
// One more argument for ctor.
Tutorial3( const InstantiationData& data );<--- Class 'Tutorial3' has a constructor with 1 argument that is not explicit. [+]Class 'Tutorial3' has a constructor with 1 argument that is not explicit. Such constructors should in general be explicit for type safety reasons. Using the explicit keyword in the constructor means some mistakes when using the class can be avoided.
virtual void run() override;
// Will be called for every if statement.
bool VisitIfStmt( const IfStmt* ifstmt );
private:
// Helper function to check if the statement is 'return false;' and
// modify it if yes.
void modifyReturnFalse( const Stmt* stmt );
};
} // namespace
#endif // POSTFIXINCREMENTFIX_H
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */