<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="http://git.reviewboard.kde.org/r/105616/">http://git.reviewboard.kde.org/r/105616/</a>
</td>
</tr>
</table>
<br />
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">See kdevelop/cpp/codecompletion/item.cpp:315, it looks like it's going to override whatever you do here. Thankfully that commit also gives us some context:
"
- Implement a nice new feature: When completing for a function argument of enumeration type, show the fitting enumerations directly, and if they aren't in visible scope, show them with the necessary scope added.
- Make the public/private grouping work for enumerators.
"
So... to recap:
DUChainUtils::completionProperties probably used to do what you're making it do now.
The CPP plugin's NormalDeclarationCompletionItem has some funky code specifically to override what DUChainUtils /used/ to do, but doesn't do anymore (but that you're making it do again).
So, I don't know the reasoning for the way it is now, and I agree with your reasoning for how it should be.
If you're going to fix it, just make sure:
1. You find out what NormalDeclarationCompletionItem is trying to accomplish
2. You don't break the feature you've been working on all this time (showing matching out-of-scope enums)
3. You make sure that public/private grouping still works for enumerators
4. All tests pass
You might want to trawl through git log and history to find out WTF is going on.</pre>
<br />
<p>- Olivier Jean de</p>
<br />
<p>On July 19th, 2012, 7:42 a.m., Ivan Shapovalov wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/media/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for KDevelop.</div>
<div>By Ivan Shapovalov.</div>
<p style="color: grey;"><i>Updated July 19, 2012, 7:42 a.m.</i></p>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">EnumeratorType is rather a variable (compile-time integral constant) than an enum type-name, so mark it accordingly.
QUESTION: although this is valid for C/C++, are there any places where an EnumeratorType would represent something different?
// this alone won't fix any bugs, there is a dependent change in queue</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Existing unit-tests pass.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>language/duchain/duchainutils.cpp <span style="color: grey">(1879540)</span></li>
</ul>
<p><a href="http://git.reviewboard.kde.org/r/105616/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>