Review Request 110638: Fix every compound assignment operator being regognized as "+="
Commit Hook
null at kde.org
Sun May 26 13:39:06 UTC 2013
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/110638/
-----------------------------------------------------------
(Updated May 26, 2013, 1:39 p.m.)
Status
------
This change has been marked as submitted.
Review request for KDevelop and Milian Wolff.
Description
-------
It was noticed that before this change, all operators in statements
such as
Foo a, b;
a ^= b;
a &= b;
etc. will be displayed as uses of Foo::operator+=(), which is obviously
wrong. The reason for this was some rather curious code, which just
treated every of these operators as "Token_assign" in the lexer,
and some other code which treated each "Token_assign" as "+=" in the
analyzer. To fix the issue, this had to be sorted out.
- Token_assign doesn't make sense anyways, since assignments are
represented as "=". So, remove the token completely.
- Instead of lexing every compound assignment operator as "Assign",
yield different token types for each.
- In the code which handles the operators, change the function from
using its own list of tokenkind -- tokenText mapping to use the
official one.
Also included is a unit test for the fix.
Diffs
-----
languages/cpp/cppduchain/builtinoperators.cpp 0def471
languages/cpp/cppduchain/expressionvisitor.cpp 3db7be0
languages/cpp/cppduchain/tests/test_duchain.h ebc1ee8
languages/cpp/cppduchain/tests/test_duchain.cpp f83416b
languages/cpp/parser/lexer.cpp b39387a
languages/cpp/parser/parser.cpp 41f00ec
languages/cpp/parser/tokens.h dd173a3
languages/cpp/parser/tokens.cpp 9086a8e
Diff: http://git.reviewboard.kde.org/r/110638/diff/
Testing
-------
Thanks,
Sven Brauch
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20130526/ac4535ec/attachment.html>
More information about the KDevelop-devel
mailing list