diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-04-01 22:49:03 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-04-01 22:49:03 +0300 |
commit | a3c1145553b12532b18d2f439b01b649dc0d4b6e (patch) | |
tree | eb70367b707052859a9c017582201374ec725c08 | |
parent | ca1e09857ac3109a7444bc6cdcc92055fca6f27c (diff) | |
download | mplint-a3c1145553b12532b18d2f439b01b649dc0d4b6e.tar.gz mplint-a3c1145553b12532b18d2f439b01b649dc0d4b6e.tar.bz2 mplint-a3c1145553b12532b18d2f439b01b649dc0d4b6e.tar.xz mplint-a3c1145553b12532b18d2f439b01b649dc0d4b6e.zip |
Add rule for check virtual and override or final in same line.
-rw-r--r-- | src/Makefile.am | 1 | ||||
-rw-r--r-- | src/rules/virtual.cpp | 37 | ||||
-rw-r--r-- | tests/testreport.txt | 6 | ||||
-rw-r--r-- | tests/testsrc/bad/virtual1.cpp | 36 | ||||
-rw-r--r-- | tests/testsrc/bad/virtual1.h | 33 | ||||
-rw-r--r-- | tests/testsrc/good/virtual1.cpp | 34 | ||||
-rw-r--r-- | tests/testsrc/good/virtual1.h | 34 |
7 files changed, 180 insertions, 1 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 05072fe..58030c9 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -26,6 +26,7 @@ mplint_SOURCES = \ rules/license.cpp \ rules/packet.cpp \ rules/po.cpp \ + rules/virtual.cpp \ rules/xml.cpp # set the include path found by configure diff --git a/src/rules/virtual.cpp b/src/rules/virtual.cpp new file mode 100644 index 0000000..70f0e36 --- /dev/null +++ b/src/rules/virtual.cpp @@ -0,0 +1,37 @@ +/* + * The ManaPlus Client + * Copyright (C) 2014 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "template.hpp" + +registerRuleExt(virtualCheck, "013", "(.+)[.](cpp|h)") + +startRule(virtualCheck) +{ +} + +endRule(virtualCheck) +{ +} + +parseLineRule(virtualCheck) +{ + if (isMatch(data, "(.+)virtual[ ](.+)[ ](override|final)(.+)")) + print("Keywords virtual is useless if used with override or final"); +} diff --git a/tests/testreport.txt b/tests/testreport.txt index 0d13bed..8b47e0b 100644 --- a/tests/testreport.txt +++ b/tests/testreport.txt @@ -41,5 +41,9 @@ [testsrc/bad/license5.h:3]: V005: Missing copyrights section [testsrc/bad/license6.cpp:5]: V005: Missing "This file is part of The ManaPlus Client." [testsrc/bad/license6.h:5]: V005: Missing "This file is part of The ManaPlus Client." +[testsrc/bad/packet.cpp:25]: V012: Wrong output packet creation. Must be 'createOutPacket(CMSG...' [testsrc/bad/uk.po:2257]: V010: Wrong character at end of translation line. -[testsrc/good/packet.cpp:25]: V012: Wrong output packet creation. Must be 'createOutPacket(SMSG...' +[testsrc/bad/virtual1.cpp:33]: V013: Keywords virtual is useless if used with override or final +[testsrc/bad/virtual1.cpp:34]: V013: Keywords virtual is useless if used with override or final +[testsrc/bad/virtual1.h:31]: V013: Keywords virtual is useless if used with override or final +[testsrc/bad/virtual1.h:32]: V013: Keywords virtual is useless if used with override or final diff --git a/tests/testsrc/bad/virtual1.cpp b/tests/testsrc/bad/virtual1.cpp new file mode 100644 index 0000000..cfc4176 --- /dev/null +++ b/tests/testsrc/bad/virtual1.cpp @@ -0,0 +1,36 @@ +/* + * The ManaPlus Client + * Copyright (C) 2014 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "lintmanager.h" + +#include "debug.h" + +class Test1 final +{ + virtual Test1(); + virtual Test2(); +} + +class Test2 notfinal : public Test1 +{ + virtual Test2() override; + virtual Test3() final; +} + diff --git a/tests/testsrc/bad/virtual1.h b/tests/testsrc/bad/virtual1.h new file mode 100644 index 0000000..7a9e0f7 --- /dev/null +++ b/tests/testsrc/bad/virtual1.h @@ -0,0 +1,33 @@ +/* + * The ManaPlus Client + * Copyright (C) 2014 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "lintmanager.h" + +class Test1 notfinal +{ + virtual Test1(); + virtual Test2(); +} + +class Test2 final : public Test1 +{ + virtual Test2() override; + virtual Test3() final; +} diff --git a/tests/testsrc/good/virtual1.cpp b/tests/testsrc/good/virtual1.cpp new file mode 100644 index 0000000..0f72e65 --- /dev/null +++ b/tests/testsrc/good/virtual1.cpp @@ -0,0 +1,34 @@ +/* + * The ManaPlus Client + * Copyright (C) 2014 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "lintmanager.h" + +#include "debug.h" + +class Test1 final +{ + virtual Test1(); +} + +class Test2 notfinal : public Test1 +{ + Test2() override final; +} + diff --git a/tests/testsrc/good/virtual1.h b/tests/testsrc/good/virtual1.h new file mode 100644 index 0000000..c66c08a --- /dev/null +++ b/tests/testsrc/good/virtual1.h @@ -0,0 +1,34 @@ +/* + * The ManaPlus Client + * Copyright (C) 2014 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "lintmanager.h" + +class Test1 notfinal +{ +} + +class Test2 final : public Test1 +{ +} + + +/* + * Sets the widget being dragged. Used by the Gui class to +*/
\ No newline at end of file |