also make sure the method itself is reported is shown as deprecated
diff --git a/plugins/org.eclipse.dltk.javascript.ui/src/org/eclipse/dltk/javascript/internal/ui/text/JavaScriptDeprecationHighlightVisitor.java b/plugins/org.eclipse.dltk.javascript.ui/src/org/eclipse/dltk/javascript/internal/ui/text/JavaScriptDeprecationHighlightVisitor.java
index 1405170..3f6b491 100644
--- a/plugins/org.eclipse.dltk.javascript.ui/src/org/eclipse/dltk/javascript/internal/ui/text/JavaScriptDeprecationHighlightVisitor.java
+++ b/plugins/org.eclipse.dltk.javascript.ui/src/org/eclipse/dltk/javascript/internal/ui/text/JavaScriptDeprecationHighlightVisitor.java
@@ -20,7 +20,11 @@
import org.eclipse.dltk.compiler.problem.IProblem;
import org.eclipse.dltk.compiler.problem.IProblemIdentifier;
import org.eclipse.dltk.internal.javascript.ti.ITypeInferenceContext;
+import org.eclipse.dltk.internal.javascript.ti.JSMethod;
import org.eclipse.dltk.internal.javascript.validation.TypeInfoValidator.ValidationVisitor;
+import org.eclipse.dltk.javascript.ast.BinaryOperation;
+import org.eclipse.dltk.javascript.ast.FunctionStatement;
+import org.eclipse.dltk.javascript.ast.PropertyExpression;
import org.eclipse.dltk.javascript.core.JavaScriptProblems;
import org.eclipse.dltk.javascript.parser.ISuppressWarningsState;
import org.eclipse.dltk.javascript.parser.JSProblemReporter;
@@ -49,6 +53,25 @@
public void reportProblem(IProblem problem) {
}
+ @Override
+ protected JSMethod createMethod(FunctionStatement node) {
+ JSMethod method = super.createMethod(node);
+ if (method != null && method.isDeprecated()) {
+ if (node.getName() != null) {
+ requestor.addPosition(node.getName().sourceStart(), node
+ .getName()
+ .sourceEnd(), JS_DEPRECATED);
+ } else if (node.getParent() instanceof BinaryOperation
+ && ((BinaryOperation) node.getParent()).getLeftExpression() instanceof PropertyExpression) {
+ PropertyExpression exp = (PropertyExpression) ((BinaryOperation) node
+ .getParent()).getLeftExpression();
+ requestor.addPosition(exp.getProperty().sourceStart(), exp
+ .getProperty().sourceEnd(), JS_DEPRECATED);
+ }
+ }
+ return method;
+ }
+
public void reportProblem(IProblemIdentifier identifier, String message,
int start, int end) {
if (DEPRECATION.contains(identifier)) {