From 4df9b3754297fcd1c211646614817d75b9aa4efb Mon Sep 17 00:00:00 2001
From: Erik Verbruggen <erik.verbruggen@nokia.com>
Date: Wed, 10 Feb 2010 22:45:28 +0100
Subject: [PATCH] Fixed local usage highlighting for ObjC message parameters.

---
 src/plugins/cppeditor/cppeditor.cpp       | 6 ++++++
 src/shared/cplusplus/CheckDeclaration.cpp | 4 ++--
 src/shared/cplusplus/CheckDeclarator.cpp  | 1 -
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index c4fdf3518e9..f3d9e7e462f 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -411,6 +411,12 @@ protected:
         accept(ast->argument_list);
         return false;
     }
+
+    virtual bool visit(ObjCMessageArgumentDeclarationAST *ast)
+    {
+        accept(ast->param_name);
+        return false;
+    }
 };
 
 
diff --git a/src/shared/cplusplus/CheckDeclaration.cpp b/src/shared/cplusplus/CheckDeclaration.cpp
index 5d3646e3246..a9ede700cad 100644
--- a/src/shared/cplusplus/CheckDeclaration.cpp
+++ b/src/shared/cplusplus/CheckDeclaration.cpp
@@ -694,8 +694,8 @@ bool CheckDeclaration::visit(ObjCMethodDeclarationAST *ast)
         symbol->setStorage(methodTy->storage());
     }
 
-    symbol->setStartOffset(tokenAt(selector->firstToken()).offset);
-    symbol->setEndOffset(tokenAt(selector->lastToken()).offset);
+    symbol->setStartOffset(tokenAt(ast->firstToken()).offset);
+    symbol->setEndOffset(tokenAt(ast->lastToken()).offset);
     symbol->setVisibility(semantic()->currentObjCVisibility());
 
     _scope->enterSymbol(symbol);
diff --git a/src/shared/cplusplus/CheckDeclarator.cpp b/src/shared/cplusplus/CheckDeclarator.cpp
index b1680613936..860e7d3078d 100644
--- a/src/shared/cplusplus/CheckDeclarator.cpp
+++ b/src/shared/cplusplus/CheckDeclarator.cpp
@@ -265,7 +265,6 @@ bool CheckDeclarator::visit(ObjCMethodPrototypeAST *ast)
 
     ObjCMethod *method = control()->newObjCMethod(location, ast->selector->selector_name);
     ast->symbol = method;
-    method->setSourceLocation(location);
     method->setScope(_scope);
     method->setVisibility(semantic()->currentVisibility());
     method->setReturnType(returnType);
-- 
GitLab