* Remove binary ast nodes * SourceElementRequestVisitor uses IElementRequestor as input requesting element.
diff --git a/plugins/org.eclipse.dltk.javascript.core/src/org/eclipse/dltk/internal/javascript/parser/visitors/JavaScriptSourceElementRequestor.java b/plugins/org.eclipse.dltk.javascript.core/src/org/eclipse/dltk/internal/javascript/parser/visitors/JavaScriptSourceElementRequestor.java index 7fdf6da..a442498 100644 --- a/plugins/org.eclipse.dltk.javascript.core/src/org/eclipse/dltk/internal/javascript/parser/visitors/JavaScriptSourceElementRequestor.java +++ b/plugins/org.eclipse.dltk.javascript.core/src/org/eclipse/dltk/internal/javascript/parser/visitors/JavaScriptSourceElementRequestor.java
@@ -111,15 +111,13 @@ protected String makeLanguageDependentValue(Expression value) { String outValue = ""; - /*if (value instanceof ExtendedVariableReference) { - // Lets use AST Printer to print extended variable in python like - // syntax. - StringWriter stringWriter = new StringWriter(); - CorePrinter printer = new CorePrinter(stringWriter); - value.printNode(printer); - printer.flush(); - return stringWriter.getBuffer().toString(); - }*/ + /* + * if (value instanceof ExtendedVariableReference) { // Lets use AST + * Printer to print extended variable in python like // syntax. + * StringWriter stringWriter = new StringWriter(); CorePrinter printer = + * new CorePrinter(stringWriter); value.printNode(printer); + * printer.flush(); return stringWriter.getBuffer().toString(); } + */ return outValue; } @@ -155,63 +153,48 @@ } } - }/* else if (left instanceof ExtendedVariableReference) { - // This is for in class and in method. - if (inClass && inMethod) { - ExtendedVariableReference extendedVariable = ((ExtendedVariableReference) left); - - List varParts = extendedVariable.getExpressions(); - if (extendedVariable.isDot(0)) { - Expression first = (Expression) varParts.get(0); - // support only local variable addition. - // TODO: Add more complex variable addition. - Expression second = (Expression) varParts.get(1); - - if (first instanceof VariableReference - && second instanceof VariableReference) { - String varName = ((VariableReference) first).getName(); - MethodDeclaration currentMethod = this - .getCurrentMethod(); - List <Argument> arguments = currentMethod - .getArguments(); - if (arguments != null && arguments.size() > 0) { - Argument firstArgument = (Argument) arguments - .get(0); - String argumentName = firstArgument.getName(); - if (argumentName.equals(varName)) { - VariableReference var = (VariableReference) second; - int initialValueStart = 0; - int initialValueEnd = 0; - if (right != null) { - initialValueStart = right.sourceStart(); - initialValueEnd = right.sourceEnd(); - } - PositionInformation pos = new PositionInformation( - var.sourceStart(), var.sourceEnd(), - initialValueStart, initialValueEnd); - String initialString = this.makeValue(right); - ASTNode method = (ASTNode) this.fNodes.pop(); - ASTNode toClass = (ASTNode) this.fNodes.peek(); - this.fNodes.push(method); - - TypeField field = new TypeField(var.getName(), - initialString, pos, left, toClass); - this.fNotAddedFields.add(field); - } - } - } - } - } else if (left instanceof ExpressionList) { // Multiple - // TODO: Add list of variables reporting. - - * // assignment. ExpressionList list = (ExpressionList) left; - * List<Expression> exprs = list.getExpressions(); for - * (Expression expr : exprs) { } - - } else {// TODO: dynamic variable handling not yet supported. - - } - }*/ + }/* + * else if (left instanceof ExtendedVariableReference) { // This is for + * in class and in method. if (inClass && inMethod) { + * ExtendedVariableReference extendedVariable = + * ((ExtendedVariableReference) left); + * + * List varParts = extendedVariable.getExpressions(); if + * (extendedVariable.isDot(0)) { Expression first = (Expression) + * varParts.get(0); // support only local variable addition. // TODO: + * Add more complex variable addition. Expression second = (Expression) + * varParts.get(1); + * + * if (first instanceof VariableReference && second instanceof + * VariableReference) { String varName = ((VariableReference) + * first).getName(); MethodDeclaration currentMethod = this + * .getCurrentMethod(); List <Argument> arguments = currentMethod + * .getArguments(); if (arguments != null && arguments.size() > 0) { + * Argument firstArgument = (Argument) arguments .get(0); String + * argumentName = firstArgument.getName(); if + * (argumentName.equals(varName)) { VariableReference var = + * (VariableReference) second; int initialValueStart = 0; int + * initialValueEnd = 0; if (right != null) { initialValueStart = + * right.sourceStart(); initialValueEnd = right.sourceEnd(); } + * PositionInformation pos = new PositionInformation( var.sourceStart(), + * var.sourceEnd(), initialValueStart, initialValueEnd); String + * initialString = this.makeValue(right); ASTNode method = (ASTNode) + * this.fNodes.pop(); ASTNode toClass = (ASTNode) this.fNodes.peek(); + * this.fNodes.push(method); + * + * TypeField field = new TypeField(var.getName(), initialString, pos, + * left, toClass); this.fNotAddedFields.add(field); } } } } } else if + * (left instanceof ExpressionList) { // Multiple // TODO: Add list of + * variables reporting. + * + * // assignment. ExpressionList list = (ExpressionList) left; + * List<Expression> exprs = list.getExpressions(); for (Expression expr + * : exprs) { } + * + * } else {// TODO: dynamic variable handling not yet supported. + * + * } } + */ } public boolean visit(Expression expression) throws Exception { @@ -288,7 +271,7 @@ mi.nameSourceStart = method.getNameStart(); mi.nameSourceEnd = method.getNameEnd() - 1; mi.declarationStart = method.sourceStart(); - this.fRequestor.enterMethodRemoveSame(mi); + ((ISourceElementRequestor) this.fRequestor).enterMethodRemoveSame(mi); this.fInMethod = true; this.fCurrentMethod = method; return true;