<table><tr><td style="">flherne created this revision.<br />Restricted Application added a subscriber: kdevelop-devel.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D7643" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>Since <a href="https://cgit.kde.org/kdev-python.git/commit/?h=5.2&id=b553d75e" class="remarkup-link" target="_blank" rel="noreferrer">https://cgit.kde.org/kdev-python.git/commit/?h=5.2&id=b553d75e</a> , none of these range-overriding parameters have an effect (some weren't used before either).</p>

<p>This also fixes a deprecation warning by not using the QualifiedIdentifier overload of openDeclaration().</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>Tests pass.</p>

<p>I ran duchainify on a lot of code (all the Python-3.6 source, plus django) with asserts to test that the parameters have no effect:<br />
 template<typename T> T* DeclarationBuilder::eventuallyReopenDeclaration(Identifier* name, Ast* range, FitDeclarationType mustFitType)<br />
 {</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">QList<Declaration*> existingDeclarations = existingDeclarationsForNode(name);</pre></div>

<ul class="remarkup-list">
<li class="remarkup-list-item"></li>
</ul>

<p>+    Q_ASSERT(editorFindRange(name, name) == editorFindRange(range, range));</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">Declaration* dec = nullptr;
reopenFittingDeclaration<T>(existingDeclarations, mustFitType, editorFindRange(range, range), &dec);
bool declarationOpened = (bool) dec;</pre></div>

<p>@@ -233,7 +233,7 @@ template<typename T> T* DeclarationBuilder::visitVariableDeclaration(Identifier*</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">DUChainWriteLocker lock;
Ast* rangeNode = originalAst ? originalAst : node;
RangeInRevision range = editorFindRange(rangeNode, rangeNode);</pre></div>

<ul class="remarkup-list">
<li class="remarkup-list-item"></li>
</ul>

<p>+    Q_ASSERT(range == editorFindRange(node, node));</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">// ask the correction file library if there's a user-specified type for this object
if ( AbstractType::Ptr hint = m_correctionHelper->hintForLocal(node->value) ) {
    type = hint;</pre></div>

<p>diff --git a/duchain/declarationbuilder.h b/duchain/declarationbuilder.h<br />
index cf54e678..a883d4b7 100644</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">a/duchain/declarationbuilder.h</li>
</ul>

<p>+++ b/duchain/declarationbuilder.h<br />
@@ -261,6 +261,7 @@ protected:<br />
private:</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">template<class T> T* openDeclaration(Identifier* name, Ast* range, DeclarationFlags flags = NoFlags)
{</pre></div>

<p>+        Q_ASSERT(name);</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">T* decl = DeclarationBuilderBase::openDeclaration<T>(name, range, flags);
decl->setAlwaysForceDirect(true);
return decl;</pre></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R53 KDevelop: Python Support</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D7643" rel="noreferrer">https://phabricator.kde.org/D7643</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>duchain/declarationbuilder.cpp<br />
duchain/declarationbuilder.h</div></div></div><br /><div><strong>To: </strong>flherne, brauch<br /><strong>Cc: </strong>kdevelop-devel<br /></div>