From f2a0382910a0bfe1405d92255cb49f0a80efe616 Mon Sep 17 00:00:00 2001
From: Roberto Raggi <roberto.raggi@nokia.com>
Date: Wed, 4 Nov 2009 18:21:35 +0100
Subject: [PATCH] Replace . with -> only when the base expression has type
 pointer to class.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Reviewed-by: Thorbjørn Lindeijer
---
 src/plugins/cpptools/cppcodecompletion.cpp | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp
index 30fb1ce2ed9..909ae011fe7 100644
--- a/src/plugins/cpptools/cppcodecompletion.cpp
+++ b/src/plugins/cpptools/cppcodecompletion.cpp
@@ -1121,14 +1121,6 @@ bool CppCodeCompletion::completeMember(const QList<TypeOfExpression::Result> &ba
                                                     m_completionOperator,
                                                     &replacedDotOperator);
 
-    if (replacedDotOperator) {
-        // Replace . with ->
-        int length = m_editor->position() - m_startPosition + 1;
-        m_editor->setCurPos(m_startPosition - 1);
-        m_editor->replace(length, QLatin1String("->"));
-        ++m_startPosition;
-    }
-
     QList<Symbol *> classObjectCandidates;
     foreach (const TypeOfExpression::Result &r, classObjectResults) {
         FullySpecifiedType ty = r.first.simplified();
@@ -1147,6 +1139,14 @@ bool CppCodeCompletion::completeMember(const QList<TypeOfExpression::Result> &ba
         }
     }
 
+    if (replacedDotOperator && ! classObjectCandidates.isEmpty()) {
+        // Replace . with ->
+        int length = m_editor->position() - m_startPosition + 1;
+        m_editor->setCurPos(m_startPosition - 1);
+        m_editor->replace(length, QLatin1String("->"));
+        ++m_startPosition;
+    }
+
     completeClass(classObjectCandidates, context, /*static lookup = */ false);
     if (! m_completions.isEmpty())
         return true;
-- 
GitLab