Kaydet (Commit) b65f3fbb authored tarafından Noel Grandin's avatar Noel Grandin

new loplugin sequentialassign

Look for places we are assigning to the same variable twice
in succession, which means we can simplify that to a single assign

Change-Id: I499d20e28f5595e81e927bef8e1bf364eea8ba91
Reviewed-on: https://gerrit.libreoffice.org/70531
Tested-by: Jenkins
Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst 577b95f4
This diff is collapsed.
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
/*
* 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 <rtl/ustring.hxx>
namespace test1
{
void f(OUString s1)
{
OUString s2 = s1;
// expected-error@+1 {{simplify by merging with the preceding assignment [loplugin:sequentialassign]}}
s2 = s2.getToken(0, '(');
}
}
namespace test2
{
OUString s2;
void f(OUString s1)
{
s2 = s1;
// expected-error@+1 {{simplify by merging with the preceding assignment [loplugin:sequentialassign]}}
s2 = s2.getToken(0, '(');
}
}
namespace test3
{
struct VolumeInfo
{
OUString getFileSystemName();
};
OUString aNullURL("");
void f(VolumeInfo _aVolumeInfo)
{
OUString aFileSysName(aNullURL);
// expected-error@+1 {{simplify by merging with the preceding assignment [loplugin:sequentialassign]}}
aFileSysName = _aVolumeInfo.getFileSystemName();
}
}
namespace test4
{
struct B3DVector
{
B3DVector getPerpendicular();
};
void f(B3DVector aNewVPN)
{
B3DVector aNewToTheRight = aNewVPN;
// expected-error@+1 {{simplify by merging with the preceding assignment [loplugin:sequentialassign]}}
aNewToTheRight = aNewToTheRight.getPerpendicular();
}
}
namespace test5
{
void f(OUString s, int x)
{
int nPos = x;
// expected-error@+1 {{simplify by merging with the preceding assignment [loplugin:sequentialassign]}}
nPos = s.indexOf("x", nPos);
}
}
namespace test6
{
void f()
{
OUString s2("xxxx");
s2 = s2.getToken(0, '('); // no warning expected
}
}
namespace test7
{
class Class1
{
OUString m_field1;
void foo(Class1& rOther)
{
OUString s = rOther.m_field1;
// expected-error@+1 {{simplify by merging with the preceding assignment [loplugin:sequentialassign]}}
s = s.copy(1, 2);
}
};
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
......@@ -51,6 +51,7 @@ $(eval $(call gb_CompilerTest_add_exception_objects,compilerplugins_clang, \
compilerplugins/clang/test/salcall \
compilerplugins/clang/test/sallogareas \
compilerplugins/clang/test/salunicodeliteral \
compilerplugins/clang/test/sequentialassign \
compilerplugins/clang/test/shouldreturnbool \
compilerplugins/clang/test/simplifybool \
compilerplugins/clang/test/simplifyconstruct \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment