diff options
Diffstat (limited to 'bundles/org.eclipse.wst.jsdt.core/src/org/eclipse/wst/jsdt/core/dom/ASTConverter.java')
-rw-r--r-- | bundles/org.eclipse.wst.jsdt.core/src/org/eclipse/wst/jsdt/core/dom/ASTConverter.java | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/bundles/org.eclipse.wst.jsdt.core/src/org/eclipse/wst/jsdt/core/dom/ASTConverter.java b/bundles/org.eclipse.wst.jsdt.core/src/org/eclipse/wst/jsdt/core/dom/ASTConverter.java index 89d623fb..4174e258 100644 --- a/bundles/org.eclipse.wst.jsdt.core/src/org/eclipse/wst/jsdt/core/dom/ASTConverter.java +++ b/bundles/org.eclipse.wst.jsdt.core/src/org/eclipse/wst/jsdt/core/dom/ASTConverter.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2011 IBM Corporation and others. + * Copyright (c) 2000, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -34,6 +34,7 @@ import org.eclipse.wst.jsdt.internal.compiler.ast.JavadocFieldReference; import org.eclipse.wst.jsdt.internal.compiler.ast.JavadocMessageSend; import org.eclipse.wst.jsdt.internal.compiler.ast.LocalDeclaration; import org.eclipse.wst.jsdt.internal.compiler.ast.MessageSend; +import org.eclipse.wst.jsdt.internal.compiler.ast.ObjectGetterSetterField; import org.eclipse.wst.jsdt.internal.compiler.ast.OperatorIds; import org.eclipse.wst.jsdt.internal.compiler.ast.ProgramElement; import org.eclipse.wst.jsdt.internal.compiler.ast.StringLiteralConcatenation; @@ -346,13 +347,14 @@ class ASTConverter { int start = methodDeclaration.sourceStart; int end; SimpleName methodName =null; - if (methodDeclaration.selector!=null) + char[] name = methodDeclaration.getName(); + if (name!=null) { methodName = new SimpleName(this.ast); - methodName.internalSetIdentifier(new String(methodDeclaration.selector)); + methodName.internalSetIdentifier(new String(name)); end = retrieveIdentifierEndPosition(start, methodDeclaration.sourceEnd); - methodName.setSourceRange(start, end - start + 1); + methodName.setSourceRange(start, end == -1 ? 0 : end - start + 1); methodDecl.setName(methodName); } else @@ -1038,7 +1040,12 @@ class ASTConverter { int fieldsLength = fields.length; for (int i = 0; i < fieldsLength; i++) { - ObjectLiteralField objectLiteralField =convert(fields[i]); + ObjectLiteralField objectLiteralField = null; + if(fields[i] instanceof ObjectGetterSetterField) { + objectLiteralField = convert((ObjectGetterSetterField)fields[i]); + } else { + objectLiteralField = convert(fields[i]); + } objectLiteral.fields().add(objectLiteralField); } } @@ -1060,6 +1067,19 @@ class ASTConverter { } return objectLiteralField; } + + public ObjectLiteralField convert(org.eclipse.wst.jsdt.internal.compiler.ast.ObjectGetterSetterField field) { + ObjectLiteralField objectLiteralField = new ObjectLiteralField(this.ast); + objectLiteralField.setSourceRange(field.sourceStart, field.sourceEnd - field.sourceStart + 1); + + // ignore get set properties +// objectLiteralField.setFieldName( convert(field.fieldName)); +// objectLiteralField.setInitializer( convert(field.initializer)); +// if (this.resolveBindings) { +// recordNodes(objectLiteralField, field); +// } + return objectLiteralField; + } public RegularExpressionLiteral convert(org.eclipse.wst.jsdt.internal.compiler.ast.RegExLiteral expression) { int length = expression.sourceEnd - expression.sourceStart + 1; @@ -3111,7 +3131,7 @@ class ASTConverter { } } AbstractMethodDeclaration abstractMethodDeclaration = (AbstractMethodDeclaration) this.ast.getBindingResolver().getCorrespondingNode(currentNode); - return abstractMethodDeclaration.scope; + return abstractMethodDeclaration.getScope(); } protected void recordName(Name name, org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode compilerNode) { |