OSDN Git Service

QmlJS: Make follow symbol work with member properties.
authorChristian Kamm <christian.d.kamm@nokia.com>
Tue, 16 Nov 2010 13:39:54 +0000 (14:39 +0100)
committerChristian Kamm <christian.d.kamm@nokia.com>
Tue, 16 Nov 2010 14:30:54 +0000 (15:30 +0100)
A full evaluate() call resolves the property and continues to the
underlying type. If we use Evaluate::reference() instead, we only the
first step is done and we can get at the source location if a
ASTPropertyReference is returned.

Reviewed-by: Erik Verbruggen
src/plugins/qmljseditor/qmljseditor.cpp

index 1a8490d..d7e3d2a 100644 (file)
@@ -40,6 +40,7 @@
 #include "qmljsautocompleter.h"
 
 #include <qmljs/qmljsbind.h>
+#include <qmljs/qmljsevaluate.h>
 #include <qmljs/qmljsdocument.h>
 #include <qmljs/qmljsicontextpane.h>
 #include <qmljs/qmljslookupcontext.h>
@@ -1310,7 +1311,8 @@ TextEditor::BaseTextEditor::Link QmlJSTextEditor::findLinkAt(const QTextCursor &
     }
 
     LookupContext::Ptr lookupContext = semanticInfo.lookupContext(semanticInfo.astPath(cursorPosition));
-    const Interpreter::Value *value = lookupContext->evaluate(node);
+    Evaluate evaluator(lookupContext->context());
+    const Interpreter::Value *value = evaluator.reference(node);
 
     QString fileName;
     int line = 0, column = 0;