Clang: Show all tokens of a getter as output argument

f(x.get()); -> x.get() should be shown as a output argument

Task-number: QTCREATORBUG-18591
Change-Id: I99f5637660bcd0a889338ebfa6737d79de226f87
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
Marco Bubke
2017-07-20 17:59:35 +02:00
parent e97ff9f739
commit 99af4ae8e6
5 changed files with 67 additions and 6 deletions

View File

@@ -60,6 +60,8 @@ using testing::IsNull;
using testing::NotNull;
using testing::Gt;
using testing::Contains;
using testing::ElementsAre;
using testing::_;
using testing::EndsWith;
using testing::AllOf;
using testing::Not;
@@ -96,6 +98,14 @@ MATCHER_P2(HasTwoTypes, firstType, secondType,
return arg.hasMainType(firstType) && arg.hasMixinType(secondType);
}
MATCHER_P(HasMixin, firstType,
std::string(negation ? "isn't " : "is ")
+ PrintToString(firstType)
)
{
return arg.hasMixinType(firstType);
}
struct Data {
Data()
{
@@ -1021,6 +1031,23 @@ TEST_F(HighlightingMarks, ConstPointerArgument)
HasOnlyType(HighlightingType::LocalVariable));
}
TEST_F(HighlightingMarks, NonConstPointerGetterAsArgument)
{
const auto infos = translationUnit.highlightingMarksInRange(sourceRange(580, 41));
ASSERT_THAT(infos,
ElementsAre(_,
_,
HasMixin(HighlightingType::OutputArgument),
HasMixin(HighlightingType::OutputArgument),
HasMixin(HighlightingType::OutputArgument),
HasMixin(HighlightingType::OutputArgument),
HasMixin(HighlightingType::OutputArgument),
_,
_,
_));
}
TEST_F(HighlightingMarks, NonConstReferenceArgumentCallInsideCall)
{
const auto infos = translationUnit.highlightingMarksInRange(sourceRange(501, 64));