Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterTestAST3_2.java')
-rw-r--r--tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterTestAST3_2.java8652
1 files changed, 0 insertions, 8652 deletions
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterTestAST3_2.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterTestAST3_2.java
deleted file mode 100644
index db189c3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterTestAST3_2.java
+++ /dev/null
@@ -1,8652 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 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
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.wst.jsdt.core.IClassFile;
-import org.eclipse.wst.jsdt.core.IFunction;
-import org.eclipse.wst.jsdt.core.IInitializer;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.ISourceRange;
-import org.eclipse.wst.jsdt.core.IType;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.WorkingCopyOwner;
-import org.eclipse.wst.jsdt.core.compiler.IProblem;
-import org.eclipse.wst.jsdt.core.dom.AST;
-import org.eclipse.wst.jsdt.core.dom.ASTMatcher;
-import org.eclipse.wst.jsdt.core.dom.ASTNode;
-import org.eclipse.wst.jsdt.core.dom.ASTParser;
-import org.eclipse.wst.jsdt.core.dom.ASTRequestor;
-import org.eclipse.wst.jsdt.core.dom.ASTVisitor;
-import org.eclipse.wst.jsdt.core.dom.AbstractTypeDeclaration;
-import org.eclipse.wst.jsdt.core.dom.AnonymousClassDeclaration;
-import org.eclipse.wst.jsdt.core.dom.ArrayInitializer;
-import org.eclipse.wst.jsdt.core.dom.ArrayType;
-import org.eclipse.wst.jsdt.core.dom.Assignment;
-import org.eclipse.wst.jsdt.core.dom.Block;
-import org.eclipse.wst.jsdt.core.dom.BodyDeclaration;
-import org.eclipse.wst.jsdt.core.dom.CatchClause;
-import org.eclipse.wst.jsdt.core.dom.CharacterLiteral;
-import org.eclipse.wst.jsdt.core.dom.ClassInstanceCreation;
-import org.eclipse.wst.jsdt.core.dom.ConstructorInvocation;
-import org.eclipse.wst.jsdt.core.dom.Expression;
-import org.eclipse.wst.jsdt.core.dom.ExpressionStatement;
-import org.eclipse.wst.jsdt.core.dom.FieldAccess;
-import org.eclipse.wst.jsdt.core.dom.FieldDeclaration;
-import org.eclipse.wst.jsdt.core.dom.ForStatement;
-import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration;
-import org.eclipse.wst.jsdt.core.dom.FunctionInvocation;
-import org.eclipse.wst.jsdt.core.dom.IBinding;
-import org.eclipse.wst.jsdt.core.dom.IFunctionBinding;
-import org.eclipse.wst.jsdt.core.dom.ITypeBinding;
-import org.eclipse.wst.jsdt.core.dom.IVariableBinding;
-import org.eclipse.wst.jsdt.core.dom.IfStatement;
-import org.eclipse.wst.jsdt.core.dom.ImportDeclaration;
-import org.eclipse.wst.jsdt.core.dom.InfixExpression;
-import org.eclipse.wst.jsdt.core.dom.Initializer;
-import org.eclipse.wst.jsdt.core.dom.InstanceofExpression;
-import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit;
-import org.eclipse.wst.jsdt.core.dom.Modifier;
-import org.eclipse.wst.jsdt.core.dom.Name;
-import org.eclipse.wst.jsdt.core.dom.NullLiteral;
-import org.eclipse.wst.jsdt.core.dom.PackageDeclaration;
-import org.eclipse.wst.jsdt.core.dom.ParenthesizedExpression;
-import org.eclipse.wst.jsdt.core.dom.PrimitiveType;
-import org.eclipse.wst.jsdt.core.dom.QualifiedName;
-import org.eclipse.wst.jsdt.core.dom.ReturnStatement;
-import org.eclipse.wst.jsdt.core.dom.SimpleName;
-import org.eclipse.wst.jsdt.core.dom.SimpleType;
-import org.eclipse.wst.jsdt.core.dom.SingleVariableDeclaration;
-import org.eclipse.wst.jsdt.core.dom.Statement;
-import org.eclipse.wst.jsdt.core.dom.StringLiteral;
-import org.eclipse.wst.jsdt.core.dom.SuperFieldAccess;
-import org.eclipse.wst.jsdt.core.dom.SuperMethodInvocation;
-import org.eclipse.wst.jsdt.core.dom.SwitchCase;
-import org.eclipse.wst.jsdt.core.dom.SwitchStatement;
-import org.eclipse.wst.jsdt.core.dom.TryStatement;
-import org.eclipse.wst.jsdt.core.dom.Type;
-import org.eclipse.wst.jsdt.core.dom.TypeDeclaration;
-import org.eclipse.wst.jsdt.core.dom.TypeDeclarationStatement;
-import org.eclipse.wst.jsdt.core.dom.VariableDeclarationExpression;
-import org.eclipse.wst.jsdt.core.dom.VariableDeclarationFragment;
-import org.eclipse.wst.jsdt.core.dom.VariableDeclarationStatement;
-import org.eclipse.wst.jsdt.core.dom.WhileStatement;
-import org.eclipse.wst.jsdt.core.tests.model.CancelCounter;
-import org.eclipse.wst.jsdt.core.tests.model.Canceler;
-import org.eclipse.wst.jsdt.core.tests.model.ReconcilerTests;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-
-public class ASTConverterTestAST3_2 extends ConverterTestSetup {
-
- public void setUpSuite() throws Exception {
- super.setUpSuite();
- this.ast = AST.newAST(AST.JLS3);
- }
-
- public ASTConverterTestAST3_2(String name) {
- super(name);
- }
-
- static {
-// TESTS_NAMES = new String[] {"test0602"};
-// TESTS_RANGE = new int[] { 664, -1 };
-// TESTS_NUMBERS = new int[] { 664 };
- }
- public static Test suite() {
- return buildModelTestSuite(ASTConverterTestAST3_2.class);
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=22560
- */
- public void test0401() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0401", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
- assertNotNull(node);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- Block block = methodDeclaration.getBody();
- List statements = block.statements();
- assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
- Statement statement = (Statement) statements.get(0);
- assertTrue("Not a return statement", statement.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
- ReturnStatement returnStatement = (ReturnStatement) statement;
- Expression expression = returnStatement.getExpression();
- assertNotNull("there is no expression", expression); //$NON-NLS-1$
- // call the default initialization
- methodDeclaration.getReturnType2();
- ITypeBinding typeBinding = expression.resolveTypeBinding();
- assertNotNull("No typebinding", typeBinding); //$NON-NLS-1$
- assertEquals("wrong name", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=23464
- */
- public void test0402() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0402", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0, 0);
- assertEquals("Wrong number of problems", 0, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
- assertNotNull(node);
- assertTrue("Not a super method invocation", node.getNodeType() == ASTNode.SUPER_CONSTRUCTOR_INVOCATION); //$NON-NLS-1$
- checkSourceRange(node, "new A().super();", source); //$NON-NLS-1$
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=23597
- */
- public void test0403() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0403", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0, 1);
- assertEquals("Wrong number of problems", 1, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
- assertNotNull(node);
- assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
- FunctionInvocation methodInvocation = (FunctionInvocation) expression;
- Expression expression2 = methodInvocation.getExpression();
- assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
- SimpleName simpleName = (SimpleName) expression2;
- IBinding binding = simpleName.resolveBinding();
- assertNotNull("No binding", binding); //$NON-NLS-1$
- assertTrue("wrong type", binding.getKind() == IBinding.VARIABLE); //$NON-NLS-1$
- IVariableBinding variableBinding = (IVariableBinding) binding;
- assertEquals("Wrong name", "test", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
- SimpleName simpleName2 = methodInvocation.getName();
- assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
- IBinding binding2 = simpleName2.resolveBinding();
- assertNotNull("no binding2", binding2); //$NON-NLS-1$
- assertTrue("Wrong type", binding2.getKind() == IBinding.METHOD); //$NON-NLS-1$
- IFunctionBinding methodBinding = (IFunctionBinding) binding2;
- assertEquals("Wrong name", "clone", methodBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
- IFunctionBinding methodBinding2 = methodInvocation.resolveMethodBinding();
- assertNotNull("No method binding2", methodBinding2);
- assertTrue("Wrong binding", methodBinding == methodBinding2);
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=23597
- */
- public void test0404() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0404", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
- assertEquals("Wrong number of problems", 1, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
- assertNotNull(node);
- assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
- FunctionInvocation methodInvocation = (FunctionInvocation) expression;
- Expression expression2 = methodInvocation.getExpression();
- assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
- SimpleName simpleName = (SimpleName) expression2;
- IBinding binding = simpleName.resolveBinding();
- assertNotNull("No binding", binding); //$NON-NLS-1$
- assertTrue("wrong type", binding.getKind() == IBinding.VARIABLE); //$NON-NLS-1$
- IVariableBinding variableBinding = (IVariableBinding) binding;
- assertEquals("Wrong name", "a", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
- SimpleName simpleName2 = methodInvocation.getName();
- assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
- IBinding binding2 = simpleName2.resolveBinding();
- assertNotNull("no binding2", binding2); //$NON-NLS-1$
- assertTrue("Wrong type", binding2.getKind() == IBinding.METHOD); //$NON-NLS-1$
- IFunctionBinding methodBinding = (IFunctionBinding) binding2;
- assertEquals("Wrong name", "clone", methodBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=23597
- */
- public void test0405() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0405", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0, 1);
- assertEquals("Wrong number of problems", 1, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
- assertNotNull(node);
- assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
- FunctionInvocation methodInvocation = (FunctionInvocation) expression;
- Expression expression2 = methodInvocation.getExpression();
- assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
- SimpleName simpleName = (SimpleName) expression2;
- IBinding binding = simpleName.resolveBinding();
- assertNotNull("No binding", binding); //$NON-NLS-1$
- assertTrue("wrong type", binding.getKind() == IBinding.VARIABLE); //$NON-NLS-1$
- IVariableBinding variableBinding = (IVariableBinding) binding;
- assertEquals("Wrong name", "a", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
- SimpleName simpleName2 = methodInvocation.getName();
- assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
- IBinding binding2 = simpleName2.resolveBinding();
- assertNotNull("no binding2", binding2); //$NON-NLS-1$
- assertTrue("Wrong type", binding2.getKind() == IBinding.METHOD); //$NON-NLS-1$
- IFunctionBinding methodBinding = (IFunctionBinding) binding2;
- assertEquals("Wrong name", "clone", methodBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=23597
- */
- public void test0406() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0406", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- JavaScriptUnit unit = (JavaScriptUnit) result;
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
- assertEquals("Wrong number of problems", 1, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
- assertNotNull(node);
- assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
- FunctionInvocation methodInvocation = (FunctionInvocation) expression;
- Expression expression2 = methodInvocation.getExpression();
- assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
- SimpleName simpleName = (SimpleName) expression2;
- IBinding binding = simpleName.resolveBinding();
- assertNotNull("No binding", binding); //$NON-NLS-1$
- assertTrue("wrong type", binding.getKind() == IBinding.VARIABLE); //$NON-NLS-1$
- IVariableBinding variableBinding = (IVariableBinding) binding;
- assertEquals("Wrong name", "a", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
- SimpleName simpleName2 = methodInvocation.getName();
- assertEquals("Wrong name", "foo", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
- IBinding binding2 = simpleName2.resolveBinding();
- assertNotNull("no binding2", binding2); //$NON-NLS-1$
- assertTrue("Wrong type", binding2.getKind() == IBinding.METHOD); //$NON-NLS-1$
- IFunctionBinding methodBinding = (IFunctionBinding) binding2;
- assertEquals("Wrong name", "foo", methodBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
- assertNull("Got a declaring node in the unit", unit.findDeclaringNode(methodBinding));
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=23162
- */
- public void test0407() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0407", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("Wrong number of problems", 0, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertNotNull(node);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- SimpleName simpleName = methodDeclaration.getName();
- IBinding binding = simpleName.resolveBinding();
- assertNotNull("No binding", binding); //$NON-NLS-1$
- assertTrue("Not a method binding", binding.getKind() == IBinding.METHOD); //$NON-NLS-1$
- IFunctionBinding methodBinding = (IFunctionBinding) binding;
- assertEquals("wrong name", "foo", methodBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
- methodDeclaration.setName(methodDeclaration.getAST().newSimpleName("foo2")); //$NON-NLS-1$
- IFunctionBinding methodBinding2 = methodDeclaration.resolveBinding();
- assertNotNull("No methodbinding2", methodBinding2); //$NON-NLS-1$
- assertEquals("wrong name", "foo", methodBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
- simpleName = methodDeclaration.getName();
- IBinding binding2 = simpleName.resolveBinding();
- assertNull("Got a binding2", binding2); //$NON-NLS-1$
-
- ASTNode astNode = unit.findDeclaringNode(methodBinding);
- assertNotNull("No declaring node", astNode);
- assertEquals("wrong declaring node", methodDeclaration, astNode);
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=23162
- */
- public void test0408() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0408", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("Wrong number of problems", 0, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
- assertNotNull(node);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- Type type = methodDeclaration.getReturnType2();
- assertTrue("Not a simple type", type.isSimpleType()); //$NON-NLS-1$
- SimpleType simpleType = (SimpleType) type;
- Name name = simpleType.getName();
- assertTrue("Not a qualified name", name.isQualifiedName()); //$NON-NLS-1$
- QualifiedName qualifiedName = (QualifiedName) name;
- name = qualifiedName.getQualifier();
- assertTrue("Not a qualified name", name.isQualifiedName()); //$NON-NLS-1$
- qualifiedName = (QualifiedName) name;
- name = qualifiedName.getQualifier();
- assertTrue("Not a simple name", name.isSimpleName()); //$NON-NLS-1$
- SimpleName simpleName = (SimpleName) name;
- IBinding binding = simpleName.resolveBinding();
- assertNotNull("No binding", binding); //$NON-NLS-1$
- assertTrue("Not a package binding", binding.getKind() == IBinding.PACKAGE); //$NON-NLS-1$
- assertEquals("Wrong name", "java", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=23162
- */
- public void test0409() throws JavaScriptModelException {
- Hashtable options = JavaScriptCore.getOptions();
- Hashtable newOptions = JavaScriptCore.getOptions();
- try {
- newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
- JavaScriptCore.setOptions(newOptions);
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0409", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- assertProblemsSize(compilationUnit, 0);
- BindingsCollectorVisitor bindingsCollectorVisitor = new BindingsCollectorVisitor();
- compilationUnit.accept(bindingsCollectorVisitor);
- assertEquals("wrong number", 3, bindingsCollectorVisitor.getUnresolvedNodesSet().size()); //$NON-NLS-1$
- Map bindingsMap = bindingsCollectorVisitor.getBindingsMap();
- assertEquals("wrong number", 211, bindingsMap.size()); //$NON-NLS-1$
- ASTNodesCollectorVisitor nodesCollector = new ASTNodesCollectorVisitor();
- compilationUnit.accept(nodesCollector);
- Set detachedNodes = nodesCollector.getDetachedAstNodes();
- int counter = 0;
- for (Iterator iterator = detachedNodes.iterator(); iterator.hasNext(); ) {
- ASTNode detachedNode = (ASTNode) iterator.next();
- counter++;
- IBinding binding = (IBinding) bindingsMap.get(detachedNode);
- assertNotNull(binding);
- switch(detachedNode.getNodeType()) {
- case ASTNode.ARRAY_ACCESS :
- case ASTNode.ARRAY_CREATION :
- case ASTNode.ARRAY_INITIALIZER :
- case ASTNode.ASSIGNMENT :
- case ASTNode.BOOLEAN_LITERAL :
- case ASTNode.CHARACTER_LITERAL :
- case ASTNode.CLASS_INSTANCE_CREATION :
- case ASTNode.CONDITIONAL_EXPRESSION :
- case ASTNode.FIELD_ACCESS :
- case ASTNode.INFIX_EXPRESSION :
- case ASTNode.INSTANCEOF_EXPRESSION :
- case ASTNode.FUNCTION_INVOCATION :
- case ASTNode.NULL_LITERAL :
- case ASTNode.NUMBER_LITERAL :
- case ASTNode.POSTFIX_EXPRESSION :
- case ASTNode.PREFIX_EXPRESSION :
- case ASTNode.THIS_EXPRESSION :
- case ASTNode.TYPE_LITERAL :
- case ASTNode.VARIABLE_DECLARATION_EXPRESSION :
- ITypeBinding typeBinding = ((Expression) detachedNode).resolveTypeBinding();
- if (!binding.equals(typeBinding)) {
- System.out.println(detachedNode);
- }
- assertTrue("binding not equals", binding.equals(typeBinding)); //$NON-NLS-1$
- break;
- case ASTNode.VARIABLE_DECLARATION_FRAGMENT :
- assertTrue("binding not equals", binding.equals(((VariableDeclarationFragment) detachedNode).resolveBinding())); //$NON-NLS-1$
- break;
- case ASTNode.ANONYMOUS_CLASS_DECLARATION :
- assertTrue("binding not equals", binding.equals(((AnonymousClassDeclaration) detachedNode).resolveBinding())); //$NON-NLS-1$
- break;
- case ASTNode.QUALIFIED_NAME :
- case ASTNode.SIMPLE_NAME :
- IBinding newBinding = ((Name) detachedNode).resolveBinding();
- assertTrue("binding not equals", binding.equals(newBinding)); //$NON-NLS-1$
- break;
- case ASTNode.ARRAY_TYPE :
- case ASTNode.SIMPLE_TYPE :
- case ASTNode.PRIMITIVE_TYPE :
- assertTrue("binding not equals", binding.equals(((Type) detachedNode).resolveBinding())); //$NON-NLS-1$
- break;
- case ASTNode.CONSTRUCTOR_INVOCATION :
- assertTrue("binding not equals", binding.equals(((ConstructorInvocation) detachedNode).resolveConstructorBinding())); //$NON-NLS-1$
- break;
- case ASTNode.IMPORT_DECLARATION :
- assertTrue("binding not equals", binding.equals(((ImportDeclaration) detachedNode).resolveBinding())); //$NON-NLS-1$
- break;
- case ASTNode.FUNCTION_DECLARATION :
- assertTrue("binding not equals", binding.equals(((FunctionDeclaration) detachedNode).resolveBinding())); //$NON-NLS-1$
- break;
- case ASTNode.PACKAGE_DECLARATION :
- assertTrue("binding not equals", binding.equals(((PackageDeclaration) detachedNode).resolveBinding())); //$NON-NLS-1$
- break;
- case ASTNode.TYPE_DECLARATION :
- assertTrue("binding not equals", binding.equals(((TypeDeclaration) detachedNode).resolveBinding())); //$NON-NLS-1$
- break;
- }
- }
- } finally {
- JavaScriptCore.setOptions(options);
- }
- }
-
- /**
- * Test for message on jdt-core-dev
- */
- public void test0410() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0410", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("Wrong number of problems", 0, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
- assertNotNull(node);
- assertTrue("Not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
- Expression expression = ((ReturnStatement) node).getExpression();
- assertTrue("Not an infix expression", expression.getNodeType() == ASTNode.INFIX_EXPRESSION); //$NON-NLS-1$
- InfixExpression infixExpression = (InfixExpression) expression;
- List extendedOperands = infixExpression.extendedOperands();
- assertEquals("wrong size", 3, extendedOperands.size()); //$NON-NLS-1$
- }
-
- /**
- * Test for message on jdt-core-dev
- */
- public void test0411() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0411", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("Wrong number of problems", 0, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
- assertNotNull(node);
- assertTrue("Not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
- Expression expression = ((ReturnStatement) node).getExpression();
- assertTrue("Not an infix expression", expression.getNodeType() == ASTNode.INFIX_EXPRESSION); //$NON-NLS-1$
- InfixExpression infixExpression = (InfixExpression) expression;
- List extendedOperands = infixExpression.extendedOperands();
- assertEquals("wrong size", 0, extendedOperands.size()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=23901
- */
- public void test0412() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0412", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0);
- assertNotNull(node);
- assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
- TypeDeclaration typeDeclaration = (TypeDeclaration) node;
- ITypeBinding typeBinding = typeDeclaration.resolveBinding();
- assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
- assertNotNull("No declaring node", unit.findDeclaringNode(typeBinding)); //$NON-NLS-1$
- Name name = typeDeclaration.getName();
- IBinding binding = name.resolveBinding();
- assertNotNull("No binding", binding); //$NON-NLS-1$
- ASTNode declaringNode = unit.findDeclaringNode(binding);
- assertNotNull("No declaring node", declaringNode); //$NON-NLS-1$
- assertEquals("Wrong node", typeDeclaration, declaringNode); //$NON-NLS-1$
- typeBinding = name.resolveTypeBinding();
- assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
- declaringNode = unit.findDeclaringNode(typeBinding);
- assertNotNull("No declaring node", declaringNode); //$NON-NLS-1$
- assertEquals("Wrong node", typeDeclaration, declaringNode); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=20881
- */
- public void test0413() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0413", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 1, 0);
- assertNotNull(node);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- List throwsException = methodDeclaration.thrownExceptions();
- assertEquals("wrong size", 2, throwsException.size()); //$NON-NLS-1$
- Name name = (Name) throwsException.get(0);
- IBinding binding = name.resolveBinding();
- assertNull("Got a binding", binding); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=23734
- */
- public void test0414() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0414", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0);
- assertNotNull(node);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- Type type = methodDeclaration.getReturnType2();
- ITypeBinding typeBinding = type.resolveBinding();
- assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
- ASTNode declaringNode = unit.findDeclaringNode(typeBinding);
- assertNull("Got a declaring node", declaringNode); //$NON-NLS-1$
-
- node = getASTNode(unit, 0, 1);
- assertNotNull(node);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration2 = (FunctionDeclaration) node;
- Type type2 = methodDeclaration2.getReturnType2();
- ITypeBinding typeBinding2 = type2.resolveBinding();
- assertNotNull("No type binding", typeBinding2); //$NON-NLS-1$
- ASTNode declaringNode2 = unit.findDeclaringNode(typeBinding2);
- assertNotNull("No declaring node", declaringNode2); //$NON-NLS-1$
-
- IJavaScriptUnit sourceUnit2 = getCompilationUnit("Converter" , "src", "test0414", "B.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-
- result = runConversion(AST.JLS3, sourceUnit2, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit2 = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit2.getProblems().length); //$NON-NLS-1$
- ASTNode declaringNode3 = unit2.findDeclaringNode(typeBinding);
- assertNull("Got a declaring node", declaringNode3); //$NON-NLS-1$
-
- ASTNode declaringNode4 = unit2.findDeclaringNode(typeBinding.getKey());
- assertNotNull("No declaring node", declaringNode4); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24268
- */
- public void test0415() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0415", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a switch statement", node.getNodeType() == ASTNode.SWITCH_STATEMENT); //$NON-NLS-1$
- SwitchStatement switchStatement = (SwitchStatement) node;
- List statements = switchStatement.statements();
- assertEquals("wrong size", statements.size(), 5); //$NON-NLS-1$
- Statement statement = (Statement) statements.get(3);
- assertTrue("not a switch case (default)", statement.getNodeType() == ASTNode.SWITCH_CASE); //$NON-NLS-1$
- SwitchCase defaultCase = (SwitchCase) statement;
- assertTrue("not a default case", defaultCase.isDefault());
- checkSourceRange(defaultCase, "default:", source);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24324
- */
- public void test0416() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0416", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 1, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- assertEquals("Wrong size", fragments.size(), 1);
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression init = fragment.getInitializer();
- assertTrue("not a qualified name", init.getNodeType() == ASTNode.QUALIFIED_NAME); //$NON-NLS-1$
- QualifiedName qualifiedName = (QualifiedName) init;
- SimpleName simpleName = qualifiedName.getName();
- assertEquals("Wrong name", "CONST", simpleName.getIdentifier());
- IBinding binding = simpleName.resolveBinding();
- assertEquals("Wrong type", IBinding.VARIABLE, binding.getKind());
- IVariableBinding variableBinding = (IVariableBinding) binding;
- assertEquals("Wrong modifier", variableBinding.getModifiers(), Modifier.PUBLIC | Modifier.STATIC | Modifier.FINAL);
- ASTNode declaringNode = unit.findDeclaringNode(variableBinding);
- assertNotNull("No declaring node", declaringNode);
- assertTrue("not a variable declaration fragment", declaringNode.getNodeType() == ASTNode.VARIABLE_DECLARATION_FRAGMENT);
- VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) declaringNode;
- FieldDeclaration fieldDeclaration = (FieldDeclaration) variableDeclarationFragment.getParent();
- assertEquals("Wrong modifier", fieldDeclaration.getModifiers(), Modifier.NONE);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24347
- */
- public void test0417() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0417", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- Type type = statement.getType();
- assertTrue("not a simple type", type.getNodeType() == ASTNode.SIMPLE_TYPE); //$NON-NLS-1$
- SimpleType simpleType = (SimpleType) type;
- Name name = simpleType.getName();
- assertTrue("Not a qualified name", name.isQualifiedName());
- QualifiedName qualifiedName = (QualifiedName) name;
- Name qualifier = qualifiedName.getQualifier();
- assertTrue("Not a simple name", qualifier.isSimpleName());
- IBinding binding = qualifier.resolveBinding();
- assertNotNull("No binding", binding);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24406
- */
- public void test0418() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0418", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 1, 0);
- assertNotNull("No node", node);
- assertTrue("not an expression statement ", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- assertTrue("not an method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
- FunctionInvocation methodInvocation = (FunctionInvocation) expression;
- Name name = methodInvocation.getName();
- IBinding binding = name.resolveBinding();
- assertNotNull("No binding", binding);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24449
- */
- public void test0419() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0419", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 1, 0, 0);
- assertEquals("Not an expression statement", node.getNodeType(), ASTNode.EXPRESSION_STATEMENT);
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- assertEquals("Not an assignment", expression.getNodeType(), ASTNode.ASSIGNMENT);
- Assignment assignment = (Assignment) expression;
- Expression expression2 = assignment.getLeftHandSide();
- assertEquals("Not a name", expression2.getNodeType(), ASTNode.SIMPLE_NAME);
- SimpleName simpleName = (SimpleName) expression2;
- IBinding binding = simpleName.resolveBinding();
- assertNull(binding);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453
- */
- public void test0420() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0420", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertEquals("Not an infix expression", expression.getNodeType(), ASTNode.INFIX_EXPRESSION);
- InfixExpression infixExpression = (InfixExpression) expression;
- Expression expression2 = infixExpression.getRightOperand();
- assertEquals("Not a parenthesized expression", expression2.getNodeType(), ASTNode.PARENTHESIZED_EXPRESSION);
- checkSourceRange(expression2, "(2 + 3)", source);
- ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression2;
- Expression expression3 = parenthesizedExpression.getExpression();
- checkSourceRange(expression3, "2 + 3", source);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453
- */
- public void test0421() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0421", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertEquals("Not an infix expression", expression.getNodeType(), ASTNode.INFIX_EXPRESSION);
- InfixExpression infixExpression = (InfixExpression) expression;
- checkSourceRange(infixExpression, "(1 + 2) + 3", source);
- Expression expression2 = infixExpression.getLeftOperand();
- assertEquals("Not a parenthesized expression", expression2.getNodeType(), ASTNode.PARENTHESIZED_EXPRESSION);
- checkSourceRange(expression2, "(1 + 2)", source);
- ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression2;
- Expression expression3 = parenthesizedExpression.getExpression();
- checkSourceRange(expression3, "1 + 2", source);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453
- */
- public void test0422() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0422", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertEquals("Not an infix expression", expression.getNodeType(), ASTNode.INFIX_EXPRESSION);
- InfixExpression infixExpression = (InfixExpression) expression;
- checkSourceRange(infixExpression, "( 1 + 2 ) + 3", source);
- Expression expression2 = infixExpression.getLeftOperand();
- assertEquals("Not a parenthesized expression", expression2.getNodeType(), ASTNode.PARENTHESIZED_EXPRESSION);
- checkSourceRange(expression2, "( 1 + 2 )", source);
- ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression2;
- Expression expression3 = parenthesizedExpression.getExpression();
- checkSourceRange(expression3, "1 + 2", source);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453
- */
- public void test0423() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0423", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertEquals("Not an infix expression", expression.getNodeType(), ASTNode.INFIX_EXPRESSION);
- InfixExpression infixExpression = (InfixExpression) expression;
- Expression expression2 = infixExpression.getRightOperand();
- assertEquals("Not a parenthesized expression", expression2.getNodeType(), ASTNode.PARENTHESIZED_EXPRESSION);
- checkSourceRange(expression2, "( 2 + 3 )", source);
- ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression2;
- Expression expression3 = parenthesizedExpression.getExpression();
- checkSourceRange(expression3, "2 + 3", source);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453
- */
- public void test0424() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0424", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertEquals("Not an infix expression", expression.getNodeType(), ASTNode.INFIX_EXPRESSION);
- InfixExpression infixExpression = (InfixExpression) expression;
- assertEquals("Wrong size", 1, infixExpression.extendedOperands().size());
- Expression expression2 = (Expression) infixExpression.extendedOperands().get(0);
- checkSourceRange(expression2, "( 2 + 3 )", source);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453
- */
- public void test0425() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0425", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertEquals("Not an infix expression", expression.getNodeType(), ASTNode.INFIX_EXPRESSION);
- InfixExpression infixExpression = (InfixExpression) expression;
- assertEquals("Wrong size", 0, infixExpression.extendedOperands().size());
- Expression expression2 = infixExpression.getRightOperand();
- assertTrue("not an infix expression", expression2.getNodeType() == ASTNode.INFIX_EXPRESSION); //$NON-NLS-1$
- InfixExpression infixExpression2 = (InfixExpression) expression2;
- Expression expression3 = infixExpression2.getRightOperand();
- assertTrue("not a parenthesized expression", expression3.getNodeType() == ASTNode.PARENTHESIZED_EXPRESSION); //$NON-NLS-1$
- checkSourceRange(expression3, "( 2 + 3 )", source);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24449
- */
- public void test0426() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0426", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 1, 0, 0);
- assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- Type type = statement.getType();
- assertTrue("not a simple type", type.getNodeType() == ASTNode.SIMPLE_TYPE);
- SimpleType simpleType = (SimpleType) type;
- Name name = simpleType.getName();
- assertNotNull("No name", name);
- IBinding binding = name.resolveBinding();
- assertNotNull("No binding", binding);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24449
- */
- public void test0427() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0427", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 1, 0, 0);
- assertEquals("Not an expression statement", node.getNodeType(), ASTNode.EXPRESSION_STATEMENT);
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- assertEquals("Not an assignment", expression.getNodeType(), ASTNode.ASSIGNMENT);
- Assignment assignment = (Assignment) expression;
- Expression expression2 = assignment.getLeftHandSide();
- assertEquals("Not a super field access", expression2.getNodeType(), ASTNode.SUPER_FIELD_ACCESS);
- SuperFieldAccess superFieldAccess = (SuperFieldAccess) expression2;
- Name name = superFieldAccess.getName();
- assertNotNull("No name", name);
- IBinding binding = name.resolveBinding();
- assertNull("Got a binding", binding);
- assertNull("Got a binding", superFieldAccess.resolveFieldBinding());
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24449
- */
- public void test0428() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0428", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 1, 0, 0);
- assertEquals("Not an expression statement", node.getNodeType(), ASTNode.EXPRESSION_STATEMENT);
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- assertEquals("Not an assignment", expression.getNodeType(), ASTNode.ASSIGNMENT);
- Assignment assignment = (Assignment) expression;
- Expression expression2 = assignment.getLeftHandSide();
- assertEquals("Not a qualified name", expression2.getNodeType(), ASTNode.QUALIFIED_NAME);
- QualifiedName name = (QualifiedName) expression2;
- SimpleName simpleName = name.getName();
- IBinding binding = simpleName.resolveBinding();
- assertNotNull("No binding", binding);
- IBinding binding2 = name.resolveBinding();
- assertNotNull("No binding2", binding2);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24449
- */
- public void test0429() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0429", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 1, 0, 0);
- assertEquals("Not an expression statement", node.getNodeType(), ASTNode.EXPRESSION_STATEMENT);
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- assertEquals("Not an assignment", expression.getNodeType(), ASTNode.ASSIGNMENT);
- Assignment assignment = (Assignment) expression;
- Expression expression2 = assignment.getLeftHandSide();
- assertEquals("Not a qualified name", expression2.getNodeType(), ASTNode.QUALIFIED_NAME);
- QualifiedName name = (QualifiedName) expression2;
- SimpleName simpleName = name.getName();
- IBinding binding = simpleName.resolveBinding();
- assertNotNull("No binding", binding);
- IBinding binding2 = name.resolveBinding();
- assertNotNull("No binding2", binding2);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24499
- */
- public void test0430() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0430", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertTrue("Not a constructor invocation", node.getNodeType() == ASTNode.CONSTRUCTOR_INVOCATION);
- ConstructorInvocation constructorInvocation = (ConstructorInvocation) node;
- checkSourceRange(constructorInvocation, "this(coo2());", source);
- List arguments = constructorInvocation.arguments();
- assertEquals("Wrong size", 1, arguments.size());
- Expression expression = (Expression) arguments.get(0);
- assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION);
- FunctionInvocation methodInvocation = (FunctionInvocation) expression;
- SimpleName simpleName = methodInvocation.getName();
- IBinding binding = simpleName.resolveBinding();
- assertNotNull("No binding", binding);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24500
- */
- public void test0431() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0431", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertTrue("Not a constructor invocation", node.getNodeType() == ASTNode.CONSTRUCTOR_INVOCATION);
- ConstructorInvocation constructorInvocation = (ConstructorInvocation) node;
- List arguments = constructorInvocation.arguments();
- assertEquals("Wrong size", 1, arguments.size());
- Expression expression = (Expression) arguments.get(0);
- assertTrue("Not a simple name", expression.getNodeType() == ASTNode.SIMPLE_NAME);
- SimpleName simpleName = (SimpleName) expression;
- IBinding binding = simpleName.resolveBinding();
- assertNotNull("No binding", binding);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24501
- */
- public void test0432() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0432", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 1, 0, 0);
- assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- assertEquals("Not an assignment", ASTNode.ASSIGNMENT, expression.getNodeType());
- Assignment assignment = (Assignment) expression;
- Expression expression2 = assignment.getLeftHandSide();
- assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, expression2.getNodeType());
- SimpleName simpleName = (SimpleName) expression2;
- IBinding binding = simpleName.resolveBinding();
- assertNotNull("No binding", binding);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24501
- */
- public void test0433() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0433", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 1, 0, 0);
- assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- assertEquals("Not an assignment", ASTNode.ASSIGNMENT, expression.getNodeType());
- Assignment assignment = (Assignment) expression;
- Expression expression2 = assignment.getLeftHandSide();
- assertEquals("Not a super field access", ASTNode.SUPER_FIELD_ACCESS, expression2.getNodeType());
- SuperFieldAccess superFieldAccess = (SuperFieldAccess) expression2;
- SimpleName simpleName = superFieldAccess.getName();
- assertEquals("wrong name", "fCoo", simpleName.getIdentifier());
- IBinding binding = simpleName.resolveBinding();
- assertNotNull("No binding", binding);
- assertEquals("Wrong binding", IBinding.VARIABLE, binding.getKind());
- IVariableBinding variableBinding = superFieldAccess.resolveFieldBinding();
- assertTrue("Different binding", binding == variableBinding);
- ASTNode astNode = unit.findDeclaringNode(variableBinding);
- assertTrue("Wrong type", astNode.getNodeType() == ASTNode.SINGLE_VARIABLE_DECLARATION || astNode.getNodeType() == ASTNode.VARIABLE_DECLARATION_FRAGMENT || astNode.getNodeType() == ASTNode.VARIABLE_DECLARATION_EXPRESSION);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24501
- */
- public void test0434() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0434", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 1, 0, 0);
- assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- assertEquals("Not an assignment", ASTNode.ASSIGNMENT, expression.getNodeType());
- Assignment assignment = (Assignment) expression;
- Expression expression2 = assignment.getLeftHandSide();
- assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, expression2.getNodeType());
- QualifiedName qualifiedName = (QualifiedName) expression2;
- SimpleName simpleName = qualifiedName.getName();
- assertEquals("wrong name", "fCoo", simpleName.getIdentifier());
- IBinding binding = simpleName.resolveBinding();
- assertNotNull("No binding", binding);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24501
- */
- public void test0435() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0435", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 1, 0, 0);
- assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- assertEquals("Not an assignment", ASTNode.ASSIGNMENT, expression.getNodeType());
- Assignment assignment = (Assignment) expression;
- Expression expression2 = assignment.getLeftHandSide();
- assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, expression2.getNodeType());
- QualifiedName qualifiedName = (QualifiedName) expression2;
- SimpleName simpleName = qualifiedName.getName();
- assertEquals("wrong name", "fCoo", simpleName.getIdentifier());
- IBinding binding = simpleName.resolveBinding();
- assertNotNull("No binding", binding);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24502
- */
- public void test0436() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0436", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertProblemsSize(unit, 1, "The type A.CInner is not visible"); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 1, 0, 0);
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- Type type = statement.getType();
- assertEquals("Not a simple type", ASTNode.SIMPLE_TYPE, type.getNodeType());
- SimpleType simpleType = (SimpleType) type;
- Name name = simpleType.getName();
- IBinding binding = name.resolveBinding();
- assertNotNull("No binding", binding);
- assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, name.getNodeType());
- QualifiedName qualifiedName = (QualifiedName) name;
- SimpleName simpleName = qualifiedName.getName();
- assertEquals("wrong name", "CInner", simpleName.getIdentifier());
- IBinding binding2 = simpleName.resolveBinding();
- assertNotNull("No binding", binding2);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24502
- */
- public void test0437() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0437", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertProblemsSize(unit, 1, "The type CInner is not visible"); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 1, 0, 0);
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- Type type = statement.getType();
- assertEquals("Not a simple type", ASTNode.SIMPLE_TYPE, type.getNodeType());
- SimpleType simpleType = (SimpleType) type;
- Name name = simpleType.getName();
- assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, name.getNodeType());
- SimpleName simpleName = (SimpleName) name;
- IBinding binding = simpleName.resolveBinding();
- assertNotNull("No binding", binding);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24511
- */
- public void test0438() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0438", "D.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
- List imports = unit.imports();
- assertEquals("Wrong size", 1, imports.size()); //$NON-NLS-1$<
- ImportDeclaration importDeclaration = (ImportDeclaration) imports.get(0);
- IBinding binding = importDeclaration.resolveBinding();
- assertNotNull("No binding", binding);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24502
- */
- public void test0439() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0439", "E.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- Type type = statement.getType();
- assertEquals("Not a simple type", ASTNode.SIMPLE_TYPE, type.getNodeType());
- SimpleType simpleType = (SimpleType) type;
- Name name = simpleType.getName();
- IBinding binding = name.resolveBinding();
- assertNotNull("No binding", binding);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24622
- */
- public void test0440() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0440", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
- // 2 * 3 + "" + (true)
- InfixExpression infixExpression = (InfixExpression) expression;
- checkSourceRange(infixExpression, "2 * 3 + \"\" + (true)", source);
- Expression leftOperand = infixExpression.getLeftOperand();
- checkSourceRange(leftOperand, "2 * 3 + \"\"", source);
- checkSourceRange(infixExpression.getRightOperand(), "(true)", source);
- assertEquals("wrong operator", infixExpression.getOperator(), InfixExpression.Operator.PLUS);
- assertEquals("wrong type", ASTNode.INFIX_EXPRESSION, leftOperand.getNodeType());
- infixExpression = (InfixExpression) leftOperand;
- checkSourceRange(infixExpression, "2 * 3 + \"\"", source);
- leftOperand = infixExpression.getLeftOperand();
- checkSourceRange(leftOperand, "2 * 3", source);
- checkSourceRange(infixExpression.getRightOperand(), "\"\"", source);
- assertEquals("wrong operator", infixExpression.getOperator(), InfixExpression.Operator.PLUS);
- assertEquals("wrong type", ASTNode.INFIX_EXPRESSION, leftOperand.getNodeType());
- infixExpression = (InfixExpression) leftOperand;
- checkSourceRange(infixExpression, "2 * 3", source);
- leftOperand = infixExpression.getLeftOperand();
- checkSourceRange(leftOperand, "2", source);
- checkSourceRange(infixExpression.getRightOperand(), "3", source);
- assertEquals("wrong operator", infixExpression.getOperator(), InfixExpression.Operator.TIMES);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24622
- */
- public void test0441() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0441", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
- InfixExpression infixExpression = (InfixExpression) expression;
- checkSourceRange(infixExpression, "(2 + 2) * 3 * 1", source);
- Expression leftOperand = infixExpression.getLeftOperand();
- checkSourceRange(leftOperand, "(2 + 2)", source);
- checkSourceRange(infixExpression.getRightOperand(), "3", source);
- List extendedOperands = infixExpression.extendedOperands();
- assertEquals("wrong size", 1, extendedOperands.size());
- checkSourceRange((Expression) extendedOperands.get(0), "1", source);
- assertEquals("wrong operator", InfixExpression.Operator.TIMES, infixExpression.getOperator());
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24622
- */
- public void test0442() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0442", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
- InfixExpression infixExpression = (InfixExpression) expression;
- checkSourceRange(infixExpression, "2 + (2 * 3) + 1", source);
- Expression leftOperand = infixExpression.getLeftOperand();
- checkSourceRange(leftOperand, "2", source);
- Expression rightOperand = infixExpression.getRightOperand();
- checkSourceRange(rightOperand, "(2 * 3)", source);
- assertEquals("wrong type", ASTNode.PARENTHESIZED_EXPRESSION, rightOperand.getNodeType());
- List extendedOperands = infixExpression.extendedOperands();
- assertEquals("wrong size", 1, extendedOperands.size());
- checkSourceRange((Expression) extendedOperands.get(0), "1", source);
- assertEquals("wrong operator", InfixExpression.Operator.PLUS, infixExpression.getOperator());
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24623
- */
- public void test0443() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0443", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 2, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0);
- assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertNotNull("No body", methodDeclaration.getBody());
- assertNotNull("No binding", methodDeclaration.resolveBinding());
- assertTrue("Not an abstract method", Modifier.isAbstract(methodDeclaration.getModifiers()));
- List modifiers = methodDeclaration.modifiers();
- assertEquals("Wrong size", 2, modifiers.size());
- Modifier modifier1 = (Modifier) modifiers.get(0);
- assertTrue("Not a public modifier", modifier1.isPublic());
- Modifier modifier2 = (Modifier) modifiers.get(1);
- assertTrue("Not an abstract modifier", modifier2.isAbstract());
- assertTrue("Not malformed", isMalformed(methodDeclaration));
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24623
- */
- public void test0444() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0444", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 2, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0);
- assertEquals("Wrong type", ASTNode.TYPE_DECLARATION, node.getNodeType());
- TypeDeclaration typeDeclaration = (TypeDeclaration) node;
- List bodyDeclarations = typeDeclaration.bodyDeclarations();
- assertEquals("Wrong size", 2, bodyDeclarations.size());
- BodyDeclaration bodyDeclaration = (BodyDeclaration)bodyDeclarations.get(0);
- assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, bodyDeclaration.getNodeType());
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
- assertEquals("Wrong name", "foo", methodDeclaration.getName().getIdentifier());
- assertNull("Got a binding", methodDeclaration.resolveBinding());
- bodyDeclaration = (BodyDeclaration)bodyDeclarations.get(1);
- assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, bodyDeclaration.getNodeType());
- assertEquals("Wrong name", "foo", ((FunctionDeclaration) bodyDeclaration).getName().getIdentifier());
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24773
- */
- public void test0445() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0445", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=25018
- */
- public void test0446() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0446", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 2, unit.getProblems().length); //$NON-NLS-1$<
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=25124
- */
- public void test0447() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0447", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 3, unit.getProblems().length); //$NON-NLS-1$<
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=25330
- */
- public void test0448() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0448", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0);
- assertEquals("Not a method declaration", node.getNodeType(), ASTNode.FUNCTION_DECLARATION);
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertTrue("Not a constructor", methodDeclaration.isConstructor());
- assertNull("No return type", methodDeclaration.getReturnType2());
- Block block = methodDeclaration.getBody();
- assertNotNull("No method body", block);
- assertEquals("wrong size", 0, block.statements().size());
- }
-
- /**
- * Check that the implicit super constructor call is not there
- */
- public void test0449() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0449", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0);
- assertEquals("Not a method declaration", node.getNodeType(), ASTNode.FUNCTION_DECLARATION);
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertTrue("Not a constructor", methodDeclaration.isConstructor());
- Block block = methodDeclaration.getBody();
- assertNotNull("No method body", block);
- assertEquals("wrong size", 1, block.statements().size());
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=26452
- */
- public void test0450() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0450", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0);
- assertEquals("Not a type declaration", node.getNodeType(), ASTNode.TYPE_DECLARATION);
- TypeDeclaration typeDeclaration = (TypeDeclaration) node;
- ITypeBinding typeBinding = typeDeclaration.resolveBinding();
- assertNotNull("No type binding", typeBinding);
- assertTrue("not a class", typeBinding.isClass());
- assertTrue("not a toplevel type", typeBinding.isTopLevel());
- assertTrue("a local type", !typeBinding.isLocal());
- assertTrue("an anonymous type", !typeBinding.isAnonymous());
- assertTrue("a member type", !typeBinding.isMember());
- assertTrue("a nested type", !typeBinding.isNested());
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not an expression statement", node.getNodeType(), ASTNode.EXPRESSION_STATEMENT);
- Expression expression = ((ExpressionStatement) node).getExpression();
- assertEquals("Not a class instance creation", expression.getNodeType(), ASTNode.CLASS_INSTANCE_CREATION);
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
- AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
- typeBinding = anonymousClassDeclaration.resolveBinding();
- assertNotNull("No type binding", typeBinding);
- assertTrue("not a class", typeBinding.isClass());
- assertTrue("a toplevel type", !typeBinding.isTopLevel());
- assertTrue("not a local type", typeBinding.isLocal());
- assertTrue("not an anonymous type", typeBinding.isAnonymous());
- assertTrue("a member type", !typeBinding.isMember());
- assertTrue("not a nested type", typeBinding.isNested());
- ASTNode astNode = unit.findDeclaringNode(typeBinding);
- assertEquals("Wrong type", ASTNode.ANONYMOUS_CLASS_DECLARATION, astNode.getNodeType());
- assertNotNull("Didn't get a key", typeBinding.getKey());
- astNode = unit.findDeclaringNode(typeBinding.getKey());
- assertNotNull("Didn't get a declaring node", astNode);
-
- ITypeBinding typeBinding3 = classInstanceCreation.resolveTypeBinding();
- assertEquals("wrong binding", typeBinding, typeBinding3);
-
- List bodyDeclarations = anonymousClassDeclaration.bodyDeclarations();
- assertEquals("wrong size", 2, bodyDeclarations.size());
- BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
- assertTrue("not a type declaration", bodyDeclaration.getNodeType() == ASTNode.TYPE_DECLARATION);
- typeDeclaration = (TypeDeclaration) bodyDeclaration;
-
- bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(1);
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
- Block block = methodDeclaration.getBody();
- assertNotNull("No body", block);
- List statements = block.statements();
- assertEquals("wrong size", 2, statements.size());
- Statement statement = (Statement) statements.get(1);
- assertEquals("Not a variable declaration statement", statement.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
- VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) statement;
- Type type = variableDeclarationStatement.getType();
- assertNotNull("No type", type);
-
- ITypeBinding typeBinding2 = type.resolveBinding();
- typeBinding = typeDeclaration.resolveBinding();
- assertTrue("not equals", typeBinding == typeBinding2);
- assertNotNull("No type binding", typeBinding);
- assertTrue("not a class", typeBinding.isClass());
- assertTrue("a toplevel type", !typeBinding.isTopLevel());
- assertTrue("an anonymous type", !typeBinding.isAnonymous());
- assertTrue("not a member type", typeBinding.isMember());
- assertTrue("not a nested type", typeBinding.isNested());
- assertTrue("a local type", !typeBinding.isLocal());
-
- bodyDeclarations = typeDeclaration.bodyDeclarations();
- assertEquals("wrong size", 1, bodyDeclarations.size());
- bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
- assertTrue("not a type declaration", bodyDeclaration.getNodeType() == ASTNode.TYPE_DECLARATION);
- typeDeclaration = (TypeDeclaration) bodyDeclaration;
- typeBinding = typeDeclaration.resolveBinding();
- assertNotNull("No type binding", typeBinding);
- assertTrue("not a class", typeBinding.isClass());
- assertTrue("a toplevel type", !typeBinding.isTopLevel());
- assertTrue("an anonymous type", !typeBinding.isAnonymous());
- assertTrue("not a member type", typeBinding.isMember());
- assertTrue("not a nested type", typeBinding.isNested());
- assertTrue("a local type", !typeBinding.isLocal());
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24916
- */
- public void test0451() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0451", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 2, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- Type type = methodDeclaration.getReturnType2();
- checkSourceRange(type, "int", source);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=27204
- */
- public void test0452() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "", "NO_WORKING.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(compilationUnit, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- SimpleName name = methodDeclaration.getName();
- assertEquals("wrong line number", 3, compilationUnit.getLineNumber(name.getStartPosition()));
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=27173
- */
- public void test0453() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0453", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(compilationUnit, 0, 0,0);
- assertNotNull("No node", node);
- assertTrue("not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
- ReturnStatement returnStatement = (ReturnStatement) node;
- Expression expression = returnStatement.getExpression();
- assertTrue("not a super method invocation", expression.getNodeType() == ASTNode.SUPER_METHOD_INVOCATION); //$NON-NLS-1$
- SuperMethodInvocation methodInvocation = (SuperMethodInvocation) expression;
- IFunctionBinding methodBinding = methodInvocation.resolveMethodBinding();
- assertNotNull("No method binding", methodBinding);
- assertEquals("Wrong binding", "toString", methodBinding.getName());
- }
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28296
- */
- public void test0454() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0454", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(compilationUnit, 0, 0,1);
- assertNotNull("No node", node);
- assertTrue("not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- assertEquals("wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- checkSourceRange(expression, "(int) (3.14f * a)", source);
- }
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28682
- */
- public void test0455() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0455", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
- ForStatement forStatement = (ForStatement) node; // first for loop
- String expectedSource = "for (int i = 0; i < 10; i++) // for 1\n" +
- " for (int j = 0; j < 10; j++) // for 2\n" +
- " if (true) { }";
- checkSourceRange(forStatement, expectedSource, source);
- Statement body = forStatement.getBody();
- expectedSource = "for (int j = 0; j < 10; j++) // for 2\n" +
- " if (true) { }";
- checkSourceRange(body, expectedSource, source);
- assertTrue("not a for statement", body.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
- ForStatement forStatement2 = (ForStatement) body;
- body = forStatement2.getBody();
- expectedSource = "if (true) { }";
- checkSourceRange(body, expectedSource, source);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28682
- */
- public void test0456() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0456", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
- ForStatement forStatement = (ForStatement) node; // first for loop
- String expectedSource = "for (int x= 10; x < 20; x++)\n" +
- " main();";
- checkSourceRange(forStatement, expectedSource, source);
- Statement body = forStatement.getBody();
- expectedSource = "main();";
- checkSourceRange(body, expectedSource, source);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28682
- */
- public void test0457() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0457", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
- ForStatement forStatement = (ForStatement) node; // first for loop
- String expectedSource = "for (int i= 10; i < 10; i++)/*[*/\n"+
- " for (int z= 10; z < 10; z++)\n" +
- " foo();";
- checkSourceRange(forStatement, expectedSource, source);
- Statement body = forStatement.getBody();
- expectedSource = "for (int z= 10; z < 10; z++)\n" +
- " foo();";
- checkSourceRange(body, expectedSource, source);
- assertTrue("not a for statement", body.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
- ForStatement forStatement2 = (ForStatement) body;
- body = forStatement2.getBody();
- expectedSource = "foo();";
- checkSourceRange(body, expectedSource, source);
- }
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28682
- */
- public void test0458() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0458", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
- ForStatement forStatement = (ForStatement) node; // first for loop
- String expectedSource = "for (int i= 10; i < 10; i++)/*[*/\n"+
- " for (int z= 10; z < 10; z++)\n" +
- " ;";
- checkSourceRange(forStatement, expectedSource, source);
- Statement body = forStatement.getBody();
- expectedSource = "for (int z= 10; z < 10; z++)\n" +
- " ;";
- checkSourceRange(body, expectedSource, source);
- assertTrue("not a for statement", body.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
- ForStatement forStatement2 = (ForStatement) body;
- body = forStatement2.getBody();
- expectedSource = ";";
- checkSourceRange(body, expectedSource, source);
- assertTrue("not an empty statement", body.getNodeType() == ASTNode.EMPTY_STATEMENT); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28682
- */
- public void test0459() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0459", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
- ForStatement forStatement = (ForStatement) node; // first for loop
- String expectedSource = "for (int i= 10; i < 10; i++)/*[*/\n"+
- " for (int z= 10; z < 10; z++)\n" +
- " { }";
- checkSourceRange(forStatement, expectedSource, source);
- Statement body = forStatement.getBody();
- expectedSource = "for (int z= 10; z < 10; z++)\n" +
- " { }";
- checkSourceRange(body, expectedSource, source);
- assertTrue("not a for statement", body.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
- ForStatement forStatement2 = (ForStatement) body;
- body = forStatement2.getBody();
- expectedSource = "{ }";
- checkSourceRange(body, expectedSource, source);
- assertTrue("not a block", body.getNodeType() == ASTNode.BLOCK); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28869
- */
- public void test0460() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0460", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- assertTrue("Has error", compilationUnit.getProblems().length == 0); //$NON-NLS-1$
- ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
- assertNotNull("No node", node);
- assertTrue("Malformed", !isMalformed(node));
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28824
- */
- public void test0461() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0461", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- char[] source = sourceUnit.getSource().toCharArray();
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- assertTrue("Has error", compilationUnit.getProblems().length == 0); //$NON-NLS-1$
- ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
- assertNotNull("No node", node);
- assertTrue("Malformed", !isMalformed(node));
- assertTrue("not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- assertTrue("not an assignment", expression.getNodeType() == ASTNode.ASSIGNMENT); //$NON-NLS-1$
- Assignment assignment = (Assignment) expression;
- checkSourceRange(assignment, "z= foo().y.toList()", source);
- Expression expression2 = assignment.getRightHandSide();
- checkSourceRange(expression2, "foo().y.toList()", source);
- assertTrue("not a method invocation", expression2.getNodeType() == ASTNode.FUNCTION_INVOCATION);
- FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
- Expression expression3 = methodInvocation.getExpression();
- checkSourceRange(expression3, "foo().y", source);
- checkSourceRange(methodInvocation.getName(), "toList", source);
- assertTrue("not a field access", expression3.getNodeType() == ASTNode.FIELD_ACCESS);
- FieldAccess fieldAccess = (FieldAccess) expression3;
- checkSourceRange(fieldAccess.getName(), "y", source);
- Expression expression4 = fieldAccess.getExpression();
- checkSourceRange(expression4, "foo()", source);
- assertTrue("not a method invocation", expression4.getNodeType() == ASTNode.FUNCTION_INVOCATION);
- FunctionInvocation methodInvocation2 = (FunctionInvocation) expression4;
- checkSourceRange(methodInvocation2.getName(), "foo", source);
- assertNull("no null", methodInvocation2.getExpression());
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=32338
- */
- public void test0462() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "", "Test462.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- assertTrue("Has error", compilationUnit.getProblems().length == 0); //$NON-NLS-1$
- ASTNode node = getASTNode(compilationUnit, 0);
- assertNotNull("No node", node);
- assertTrue("not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION);
- TypeDeclaration typeDeclaration = (TypeDeclaration) node;
- assertEquals("Wrong name", "Test462", typeDeclaration.getName().getIdentifier());
- ITypeBinding typeBinding = typeDeclaration.resolveBinding();
- assertNotNull("No binding", typeBinding);
- assertEquals("Wrong name", "Test462", typeBinding.getQualifiedName());
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=33450
- */
- public void test0463() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0463", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
- ReturnStatement returnStatement = (ReturnStatement) node;
- Expression expression = returnStatement.getExpression();
- assertNotNull("No expression", expression);
- assertTrue("not a string literal", expression.getNodeType() == ASTNode.STRING_LITERAL); //$NON-NLS-1$
- StringLiteral stringLiteral = (StringLiteral) expression;
- checkSourceRange(stringLiteral, "\"\\012\\015\\u0061\"", source);
- assertEquals("wrong value", "\012\015a", stringLiteral.getLiteralValue());
- assertEquals("wrong value", "\"\\012\\015\\u0061\"", stringLiteral.getEscapedValue());
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=33039
- */
- public void test0464() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0464", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
- assertEquals("No error", 1, compilationUnit.getProblems().length); //$NON-NLS-1$
- assertNotNull("No node", node);
- assertTrue("not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
- ReturnStatement returnStatement = (ReturnStatement) node;
- Expression expression = returnStatement.getExpression();
- assertNotNull("No expression", expression);
- assertTrue("not a null literal", expression.getNodeType() == ASTNode.NULL_LITERAL); //$NON-NLS-1$
- NullLiteral nullLiteral = (NullLiteral) expression;
- ITypeBinding typeBinding = nullLiteral.resolveTypeBinding();
- assertNotNull("No type binding", typeBinding);
- assertFalse("A primitive type", typeBinding.isPrimitive());
- assertTrue("Null type", typeBinding.isNullType());
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=33831
- */
- public void test0465() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0465", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
- assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
- assertNotNull("No node", node);
- assertTrue("not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
- ReturnStatement returnStatement = (ReturnStatement) node;
- Expression expression = returnStatement.getExpression();
- assertNotNull("No expression", expression);
- assertTrue("not a field access", expression.getNodeType() == ASTNode.FIELD_ACCESS); //$NON-NLS-1$
- FieldAccess fieldAccess = (FieldAccess) expression;
- Name name = fieldAccess.getName();
- IBinding binding = name.resolveBinding();
- assertNotNull("No binding", binding);
- assertEquals("Wrong type", IBinding.VARIABLE, binding.getKind());
- IVariableBinding variableBinding = (IVariableBinding) binding;
- assertEquals("Wrong name", "i", variableBinding.getName());
- assertEquals("Wrong type", "int", variableBinding.getType().getName());
- IVariableBinding variableBinding2 = fieldAccess.resolveFieldBinding();
- assertTrue("different binding", variableBinding == variableBinding2);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=33949
- */
- public void test0466() throws JavaScriptModelException {
- Hashtable options = JavaScriptCore.getOptions();
- Hashtable newOptions = JavaScriptCore.getOptions();
- try {
- newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
- JavaScriptCore.setOptions(newOptions);
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0466", "Assert.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
- checkSourceRange(node, "assert ref != null : message;", source);
- } finally {
- JavaScriptCore.setOptions(options);
- }
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=33949
- */
- public void test0467() throws JavaScriptModelException {
- Hashtable options = JavaScriptCore.getOptions();
- Hashtable newOptions = JavaScriptCore.getOptions();
- try {
- newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
- JavaScriptCore.setOptions(newOptions);
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0467", "Assert.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
- checkSourceRange(node, "assert ref != null : message\\u003B", source);
-
- node = getASTNode(compilationUnit, 0, 0, 1);
- checkSourceRange(node, "assert ref != null\\u003B", source);
- } finally {
- JavaScriptCore.setOptions(options);
- }
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=36772
- */
- public void test0468() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0468", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
- assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
- assertNotNull("No node", node);
- assertTrue("not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
- ReturnStatement returnStatement = (ReturnStatement) node;
- Expression expression = returnStatement.getExpression();
- assertNotNull("No expression", expression);
- assertTrue("not a field access", expression.getNodeType() == ASTNode.FIELD_ACCESS); //$NON-NLS-1$
- FieldAccess fieldAccess = (FieldAccess) expression;
- Name name = fieldAccess.getName();
- IBinding binding = name.resolveBinding();
- assertNotNull("No binding", binding);
- assertEquals("Wrong type", IBinding.VARIABLE, binding.getKind());
- IVariableBinding variableBinding = (IVariableBinding) binding;
- assertEquals("Wrong name", "i", variableBinding.getName());
- assertEquals("Wrong type", "int", variableBinding.getType().getName());
- IVariableBinding variableBinding2 = fieldAccess.resolveFieldBinding();
- assertTrue("different binding", variableBinding == variableBinding2);
-
- node = getASTNode(compilationUnit, 0, 0);
- assertNotNull("No node", node);
- assertEquals("Wrong type", ASTNode.FIELD_DECLARATION, node.getNodeType());
- FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- List fragments = fieldDeclaration.fragments();
- assertEquals("wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-
- ASTNode foundNode = compilationUnit.findDeclaringNode(variableBinding);
- assertNotNull("No found node", foundNode);
- assertEquals("wrong node", fragment, foundNode);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=36895
- */
- public void test0469() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "codeManipulation", "bug.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(compilationUnit, 0, 2, 0);
- assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
- assertNotNull("No node", node);
- assertTrue("not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
- ASTNode parent = node.getParent();
- assertNotNull(parent);
- assertTrue("not a block", parent.getNodeType() == ASTNode.BLOCK); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=37381
- */
- public void test0470() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0470", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
- assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
- assertNotNull("No node", node);
- assertTrue("not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
- ForStatement forStatement = (ForStatement) node;
- List initializers = forStatement.initializers();
- assertEquals("wrong size", 1, initializers.size());
- Expression initializer = (Expression) initializers.get(0);
- assertTrue("not a variable declaration expression", initializer.getNodeType() == ASTNode.VARIABLE_DECLARATION_EXPRESSION); //$NON-NLS-1$
- VariableDeclarationExpression variableDeclarationExpression = (VariableDeclarationExpression) initializer;
- List fragments = variableDeclarationExpression.fragments();
- assertEquals("wrong size", 2, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- checkSourceRange(fragment, "i= 0", source);
- fragment = (VariableDeclarationFragment) fragments.get(1);
- checkSourceRange(fragment, "j= goo(3)", source);
- checkSourceRange(variableDeclarationExpression, "int i= 0, j= goo(3)", source);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=38447
- */
- public void test0471() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0471", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- assertEquals("No error", 1, compilationUnit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(compilationUnit, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertTrue("Is a constructor", !methodDeclaration.isConstructor());
- checkSourceRange(methodDeclaration, "private void foo(){", source);
- node = getASTNode(compilationUnit, 0, 1);
- assertNotNull("No node", node);
- assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- methodDeclaration = (FunctionDeclaration) node;
- assertTrue("Is a constructor", !methodDeclaration.isConstructor());
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=38447
- */
- public void test0472() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "junit.textui", "ResultPrinter.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- assertEquals("No error", 2, compilationUnit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(compilationUnit, 0, 2);
- assertNotNull("No node", node);
- assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertTrue("Not a constructor", methodDeclaration.isConstructor());
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=38732
- */
- public void test0473() throws JavaScriptModelException {
- Hashtable options = JavaScriptCore.getOptions();
- Hashtable newOptions = JavaScriptCore.getOptions();
- try {
- newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
- newOptions.put(JavaScriptCore.COMPILER_PB_ASSERT_IDENTIFIER, JavaScriptCore.ERROR);
- JavaScriptCore.setOptions(newOptions);
-
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0473", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- assertEquals("No error", 2, compilationUnit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
- assertNotNull("No node", node);
- } finally {
- JavaScriptCore.setOptions(options);
- }
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=39259
- */
- public void test0474() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0474", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
- assertNotNull("No node", node);
- assertEquals("Not a while statement", node.getNodeType(), ASTNode.WHILE_STATEMENT);
- WhileStatement whileStatement = (WhileStatement) node;
- Statement statement = whileStatement.getBody();
- assertEquals("Not a while statement", statement.getNodeType(), ASTNode.WHILE_STATEMENT);
- WhileStatement whileStatement2 = (WhileStatement) statement;
- String expectedSource =
- "while(b())\n" +
- " foo();";
- checkSourceRange(whileStatement2, expectedSource, source);
- Statement statement2 = whileStatement2.getBody();
- checkSourceRange(statement2, "foo();", source);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=39259
- */
- public void test0475() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0475", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
- assertNotNull("No node", node);
- assertEquals("Not an if statement", node.getNodeType(), ASTNode.IF_STATEMENT);
- IfStatement statement = (IfStatement) node;
- Statement statement2 = statement.getThenStatement();
- assertEquals("Not an if statement", statement2.getNodeType(), ASTNode.IF_STATEMENT);
- IfStatement statement3 = (IfStatement) statement2;
- String expectedSource =
- "if(b())\n" +
- " foo();";
- checkSourceRange(statement3, expectedSource, source);
- Statement statement4 = statement3.getThenStatement();
- checkSourceRange(statement4, "foo();", source);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=39259
- */
- public void test0476() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0476", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
- assertNotNull("No node", node);
- assertEquals("Not a for statement", node.getNodeType(), ASTNode.FOR_STATEMENT);
- ForStatement statement = (ForStatement) node;
- Statement statement2 = statement.getBody();
- assertEquals("Not a for statement", statement2.getNodeType(), ASTNode.FOR_STATEMENT);
- ForStatement statement3 = (ForStatement) statement2;
- String expectedSource =
- "for(;b();)\n" +
- " foo();";
- checkSourceRange(statement3, expectedSource, source);
- Statement statement4 = statement3.getBody();
- checkSourceRange(statement4, "foo();", source);
- }
-
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=39327
- */
- public void test0477() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0477", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- assertEquals("No error", 1, compilationUnit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
- assertNotNull("No node", node);
-
- checkSourceRange(node, "this(undef());", source);
- assertEquals("Not a constructor invocation", node.getNodeType(), ASTNode.CONSTRUCTOR_INVOCATION);
- ConstructorInvocation constructorInvocation = (ConstructorInvocation) node;
- List arguments = constructorInvocation.arguments();
- assertEquals("Wrong size", 1, arguments.size());
- IFunctionBinding binding = constructorInvocation.resolveConstructorBinding();
- assertNotNull("No binding", binding);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
- */
- public void test0478() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0478", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- IType[] types = sourceUnit.getTypes();
- assertNotNull(types);
- assertEquals("wrong size", 2, types.length);
- IType type = types[1];
- IFunction[] methods = type.getFunctions();
- assertNotNull(methods);
- assertEquals("wrong size", 1, methods.length);
- IFunction method = methods[0];
- ISourceRange sourceRange = method.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
- IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
- assertNotNull(methodBinding);
- List statements = ((FunctionDeclaration) node).getBody().statements();
- assertEquals("wrong size", 2, statements.size());
- ASTNode node2 = (ASTNode) statements.get(1);
- assertNotNull(node2);
- assertTrue("Not an expression statement", node2.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
- ExpressionStatement expressionStatement = (ExpressionStatement) node2;
- Expression expression = expressionStatement.getExpression();
- assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
- FunctionInvocation methodInvocation = (FunctionInvocation) expression;
- Expression expression2 = methodInvocation.getExpression();
- assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
- SimpleName simpleName = (SimpleName) expression2;
- IBinding binding = simpleName.resolveBinding();
- assertNotNull("No binding", binding); //$NON-NLS-1$
- assertTrue("wrong type", binding.getKind() == IBinding.VARIABLE); //$NON-NLS-1$
- IVariableBinding variableBinding = (IVariableBinding) binding;
- assertEquals("Wrong name", "a", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
- SimpleName simpleName2 = methodInvocation.getName();
- assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
- IBinding binding2 = simpleName2.resolveBinding();
- assertNotNull("no binding2", binding2); //$NON-NLS-1$
- assertTrue("Wrong type", binding2.getKind() == IBinding.METHOD); //$NON-NLS-1$
- IFunctionBinding methodBinding2 = (IFunctionBinding) binding2;
- assertEquals("Wrong name", "clone", methodBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
- */
- public void test0479() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0479", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- IType[] types = sourceUnit.getTypes();
- assertNotNull(types);
- assertEquals("wrong size", 2, types.length);
- IType type = types[1];
- IFunction[] methods = type.getFunctions();
- assertNotNull(methods);
- assertEquals("wrong size", 1, methods.length);
- IFunction method = methods[0];
- ISourceRange sourceRange = method.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
- List statements = ((FunctionDeclaration) node).getBody().statements();
- assertEquals("wrong size", 2, statements.size());
- ASTNode node2 = (ASTNode) statements.get(1);
- assertNotNull(node2);
- assertTrue("Not an expression statement", node2.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
- ExpressionStatement expressionStatement = (ExpressionStatement) node2;
- Expression expression = expressionStatement.getExpression();
- assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
- FunctionInvocation methodInvocation = (FunctionInvocation) expression;
- Expression expression2 = methodInvocation.getExpression();
- assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
- SimpleName simpleName = (SimpleName) expression2;
- IBinding binding = simpleName.resolveBinding();
- assertNull("No binding", binding); //$NON-NLS-1$
- SimpleName simpleName2 = methodInvocation.getName();
- assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
- */
- public void test0480() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0480", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- IType[] types = sourceUnit.getTypes();
- assertNotNull(types);
- assertEquals("wrong size", 1, types.length);
- IType type = types[0];
- IFunction[] methods = type.getFunctions();
- assertNotNull(methods);
- assertEquals("wrong size", 1, methods.length);
- IFunction method = methods[0];
- ISourceRange sourceRange = method.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
- List statements = ((FunctionDeclaration) node).getBody().statements();
- assertEquals("wrong size", 1, statements.size());
- ASTNode node2 = (ASTNode) statements.get(0);
- assertNotNull(node2);
- assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
- */
- public void test0481() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0481", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- IType[] types = sourceUnit.getTypes();
- assertNotNull(types);
- assertEquals("wrong size", 1, types.length);
- IType type = types[0];
- IFunction[] methods = type.getFunctions();
- assertNotNull(methods);
- assertEquals("wrong size", 1, methods.length);
- IFunction method = methods[0];
- ISourceRange sourceRange = method.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
- List statements = ((FunctionDeclaration) node).getBody().statements();
- assertEquals("wrong size", 1, statements.size());
- ASTNode node2 = (ASTNode) statements.get(0);
- assertNotNull(node2);
- assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node2;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
- ITypeBinding typeBinding = classInstanceCreation.resolveTypeBinding();
- assertNotNull(typeBinding);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
- */
- public void test0482() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0482", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- IType[] types = sourceUnit.getTypes();
- assertNotNull(types);
- assertEquals("wrong size", 1, types.length);
- IType type = types[0];
- IType[] memberTypes = type.getTypes();
- assertNotNull(memberTypes);
- assertEquals("wrong size", 1, memberTypes.length);
- IType memberType = memberTypes[0];
- IFunction[] methods = memberType.getFunctions();
- assertEquals("wrong size", 1, methods.length);
- IFunction method = methods[0];
- ISourceRange sourceRange = method.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
- List statements = ((FunctionDeclaration) node).getBody().statements();
- assertEquals("wrong size", 1, statements.size());
- ASTNode node2 = (ASTNode) statements.get(0);
- assertNotNull(node2);
- assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node2;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
- ITypeBinding typeBinding = classInstanceCreation.resolveTypeBinding();
- assertNotNull(typeBinding);
- assertTrue(typeBinding.isAnonymous());
- assertEquals("Wrong name", "", typeBinding.getName());
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
- */
- public void test0483() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0483", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- IType[] types = sourceUnit.getTypes();
- assertNotNull(types);
- assertEquals("wrong size", 1, types.length);
- IType type = types[0];
- IFunction[] methods = type.getFunctions();
- assertEquals("wrong size", 1, methods.length);
- IFunction method = methods[0];
- ISourceRange sourceRange = method.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertEquals("wrong name", "A", methodDeclaration.getName().getIdentifier());
- assertTrue("Not a constructor", methodDeclaration.isConstructor());
- IBinding binding = methodDeclaration.getName().resolveBinding();
- assertNotNull(binding);
- assertEquals("Wrong type", IBinding.METHOD, binding.getKind());
- List statements = ((FunctionDeclaration) node).getBody().statements();
- assertEquals("wrong size", 1, statements.size());
- ASTNode node2 = (ASTNode) statements.get(0);
- assertNotNull(node2);
- assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node2;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
- ITypeBinding typeBinding = classInstanceCreation.resolveTypeBinding();
- assertNotNull(typeBinding);
- assertTrue(typeBinding.isAnonymous());
- assertEquals("Wrong name", "", typeBinding.getName());
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
- */
- public void test0484() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0482", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- IType[] types = sourceUnit.getTypes();
- assertNotNull(types);
- assertEquals("wrong size", 1, types.length);
- IType type = types[0];
- IType[] memberTypes = type.getTypes();
- assertNotNull(memberTypes);
- assertEquals("wrong size", 1, memberTypes.length);
- IType memberType = memberTypes[0];
- ISourceRange sourceRange = memberType.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
- assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
- TypeDeclaration typeDeclaration = (TypeDeclaration) node;
- assertEquals("wrong name", "B", typeDeclaration.getName().getIdentifier());
- List bodyDeclarations = typeDeclaration.bodyDeclarations();
- assertEquals("Wrong size", 1, bodyDeclarations.size());
- BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
- assertTrue("Not a method declaration", bodyDeclaration.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
- Block block = methodDeclaration.getBody();
- List statements = block.statements();
- assertEquals("Wrong size", 1, statements.size());
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
- */
- public void test0485() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0482", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- IType[] types = sourceUnit.getTypes();
- assertNotNull(types);
- assertEquals("wrong size", 1, types.length);
- IType type = types[0];
- IType[] memberTypes = type.getTypes();
- assertNotNull(memberTypes);
- assertEquals("wrong size", 1, memberTypes.length);
- IType memberType = memberTypes[0];
- ISourceRange sourceRange = memberType.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
- assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
- TypeDeclaration typeDeclaration = (TypeDeclaration) node;
- assertEquals("wrong name", "B", typeDeclaration.getName().getIdentifier());
- List bodyDeclarations = typeDeclaration.bodyDeclarations();
- assertEquals("Wrong size", 1, bodyDeclarations.size());
- BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
- assertTrue("Not a method declaration", bodyDeclaration.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
- Block block = methodDeclaration.getBody();
- List statements = block.statements();
- assertEquals("Wrong size", 1, statements.size());
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
- */
- public void test0486() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0486", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- IType[] types = sourceUnit.getTypes();
- assertNotNull(types);
- assertEquals("wrong size", 1, types.length);
- IType type = types[0];
- IFunction[] methods = type.getFunctions();
- assertEquals("wrong size", 2, methods.length);
- IFunction method = methods[1];
- ISourceRange sourceRange = method.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 2);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- Block block = methodDeclaration.getBody();
- List statements = block.statements();
- assertEquals("Wrong size", 2, statements.size());
-
- node = getASTNode((JavaScriptUnit) result, 0, 1);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- methodDeclaration = (FunctionDeclaration) node;
- block = methodDeclaration.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 0, statements.size());
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
- */
- public void test0487() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0487", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- IType[] types = sourceUnit.getTypes();
- assertNotNull(types);
- assertEquals("wrong size", 1, types.length);
- IType type = types[0];
- IFunction[] methods = type.getFunctions();
- assertEquals("wrong size", 3, methods.length);
- IFunction method = methods[1];
- ISourceRange sourceRange = method.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 5);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- Block block = methodDeclaration.getBody();
- List statements = block.statements();
- assertEquals("Wrong size", 2, statements.size());
-
- node = getASTNode((JavaScriptUnit) result, 0, 4);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- methodDeclaration = (FunctionDeclaration) node;
- block = methodDeclaration.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 0, statements.size());
-
- node = getASTNode((JavaScriptUnit) result, 0, 0);
- assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
- FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- List fragments = fieldDeclaration.fragments();
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertEquals("Wrong name", "field", fragment.getName().getIdentifier());
- assertNotNull("No initializer", expression);
-
- node = getASTNode((JavaScriptUnit) result, 0, 1);
- assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
- fieldDeclaration = (FieldDeclaration) node;
- fragments = fieldDeclaration.fragments();
- fragment = (VariableDeclarationFragment) fragments.get(0);
- expression = fragment.getInitializer();
- assertEquals("Wrong name", "i", fragment.getName().getIdentifier());
- assertNotNull("No initializer", expression);
-
- node = getASTNode((JavaScriptUnit) result, 0, 2);
- assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
- Initializer initializer = (Initializer) node;
- assertEquals("Not static", Modifier.NONE, initializer.getModifiers());
- block = initializer.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 0, statements.size());
-
- node = getASTNode((JavaScriptUnit) result, 0, 3);
- assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
- initializer = (Initializer) node;
- assertEquals("Not static", Modifier.STATIC, initializer.getModifiers());
- block = initializer.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 0, statements.size());
-
- node = getASTNode((JavaScriptUnit) result, 0, 6);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- methodDeclaration = (FunctionDeclaration) node;
- block = methodDeclaration.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 0, statements.size());
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
- */
- public void test0488() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0488", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- IType[] types = sourceUnit.getTypes();
- assertNotNull(types);
- assertEquals("wrong size", 1, types.length);
- IType type = types[0];
- IInitializer[] initializers = type.getInitializers();
- assertEquals("wrong size", 2, initializers.length);
- IInitializer init = initializers[1];
- ISourceRange sourceRange = init.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 5);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- Block block = methodDeclaration.getBody();
- List statements = block.statements();
- assertEquals("Wrong size", 0, statements.size());
-
- node = getASTNode((JavaScriptUnit) result, 0, 4);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- methodDeclaration = (FunctionDeclaration) node;
- block = methodDeclaration.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 0, statements.size());
-
- node = getASTNode((JavaScriptUnit) result, 0, 0);
- assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
- FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- List fragments = fieldDeclaration.fragments();
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertEquals("Wrong name", "field", fragment.getName().getIdentifier());
- assertNotNull("No initializer", expression);
-
- node = getASTNode((JavaScriptUnit) result, 0, 1);
- assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
- fieldDeclaration = (FieldDeclaration) node;
- fragments = fieldDeclaration.fragments();
- fragment = (VariableDeclarationFragment) fragments.get(0);
- expression = fragment.getInitializer();
- assertEquals("Wrong name", "i", fragment.getName().getIdentifier());
- assertNotNull("No initializer", expression);
-
- node = getASTNode((JavaScriptUnit) result, 0, 2);
- assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
- Initializer initializer = (Initializer) node;
- assertEquals("Not static", Modifier.NONE, initializer.getModifiers());
- block = initializer.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 0, statements.size());
-
- node = getASTNode((JavaScriptUnit) result, 0, 3);
- assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
- initializer = (Initializer) node;
- assertEquals("Not static", Modifier.STATIC, initializer.getModifiers());
- block = initializer.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 1, statements.size());
-
- node = getASTNode((JavaScriptUnit) result, 0, 6);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- methodDeclaration = (FunctionDeclaration) node;
- block = methodDeclaration.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 0, statements.size());
- }
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=40804
- */
- public void test0489() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0489", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
- TypeDeclaration typeDeclaration = (TypeDeclaration) node;
- assertNull("Got a type binding", typeDeclaration.resolveBinding());
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=40804
- */
- public void test0490() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0490", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42647
- */
- public void test0491() throws JavaScriptModelException {
- Hashtable options = JavaScriptCore.getOptions();
- Hashtable newOptions = JavaScriptCore.getOptions();
- try {
- newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
- JavaScriptCore.setOptions(newOptions);
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0491", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- } finally {
- JavaScriptCore.setOptions(options);
- }
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42647
- */
- public void test0492() throws JavaScriptModelException {
- Hashtable options = JavaScriptCore.getOptions();
- Hashtable newOptions = JavaScriptCore.getOptions();
- try {
- newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
- JavaScriptCore.setOptions(newOptions);
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0492", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- } finally {
- JavaScriptCore.setOptions(options);
- }
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42839
- */
- public void test0493() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0493", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0);
- assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
- FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- Type type = fieldDeclaration.getType();
- checkSourceRange(type, "Class[][]", source);
- assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
- ArrayType arrayType = (ArrayType) type;
- Type componentType = arrayType.getComponentType();
- assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
- checkSourceRange(componentType, "Class[]", source);
- arrayType = (ArrayType) componentType;
- componentType = arrayType.getComponentType();
- assertTrue("is an array type", !componentType.isArrayType()); //$NON-NLS-1$
- checkSourceRange(componentType, "Class", source);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42839
- */
- public void test0494() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0494", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0);
- assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
- FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- Type type = fieldDeclaration.getType();
- checkSourceRange(type, "Class[][][]", source);
- assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
- ArrayType arrayType = (ArrayType) type;
- Type componentType = arrayType.getComponentType();
- assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
- checkSourceRange(componentType, "Class[][]", source);
- arrayType = (ArrayType) componentType;
- componentType = arrayType.getComponentType();
- assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
- checkSourceRange(componentType, "Class[]", source);
- arrayType = (ArrayType) componentType;
- componentType = arrayType.getComponentType();
- assertTrue("is an array type", !componentType.isArrayType()); //$NON-NLS-1$
- checkSourceRange(componentType, "Class", source);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42839
- */
- public void test0495() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0495", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0);
- assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
- FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- Type type = fieldDeclaration.getType();
- checkSourceRange(type, "Class[][]", source);
- assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
- ArrayType arrayType = (ArrayType) type;
- Type componentType = arrayType.getComponentType();
- assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
- checkSourceRange(componentType, "Class[]", source);
- arrayType = (ArrayType) componentType;
- componentType = arrayType.getComponentType();
- assertTrue("is an array type", !componentType.isArrayType()); //$NON-NLS-1$
- checkSourceRange(componentType, "Class", source);
- List fragments = fieldDeclaration.fragments();
- assertEquals("wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- assertEquals("wrong extra dimension", 1, fragment.getExtraDimensions());
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42839
- */
- public void test0496() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0496", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0);
- assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
- FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- Type type = fieldDeclaration.getType();
- checkSourceRange(type, "Class[][][][]", source);
- assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
- ArrayType arrayType = (ArrayType) type;
- Type componentType = arrayType.getComponentType();
- assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
- checkSourceRange(componentType, "Class[][][]", source);
- arrayType = (ArrayType) componentType;
- componentType = arrayType.getComponentType();
- assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
- checkSourceRange(componentType, "Class[][]", source);
- arrayType = (ArrayType) componentType;
- componentType = arrayType.getComponentType();
- assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
- checkSourceRange(componentType, "Class[]", source);
- arrayType = (ArrayType) componentType;
- componentType = arrayType.getComponentType();
- assertTrue("is an array type", !componentType.isArrayType()); //$NON-NLS-1$
- checkSourceRange(componentType, "Class", source);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42839
- */
- public void test0497() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0497", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
- ASTNode node = getASTNode(unit, 0, 0);
- assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
- FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- Type type = fieldDeclaration.getType();
- checkSourceRange(type, "Class[]", source);
- assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
- ArrayType arrayType = (ArrayType) type;
- Type componentType = arrayType.getComponentType();
- assertTrue("is an array type", !componentType.isArrayType()); //$NON-NLS-1$
- checkSourceRange(componentType, "Class", source);
- }
-
- /**
- */
- public void test0498() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0498", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=45199
- */
- public void test0499() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0499", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0, 1);
- assertNotNull(node);
- assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
- Expression expression = ((ExpressionStatement) node).getExpression();
- assertTrue("Not an assignment", expression.getNodeType() == ASTNode.ASSIGNMENT); //$NON-NLS-1$
- Assignment assignment = (Assignment) expression;
- Expression expression2 = assignment.getRightHandSide();
- assertTrue("Not an infix expression", expression2.getNodeType() == ASTNode.INFIX_EXPRESSION); //$NON-NLS-1$
- InfixExpression infixExpression = (InfixExpression) expression2;
- Expression expression3 = infixExpression.getLeftOperand();
- assertTrue("Not a simple name", expression3.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
- ITypeBinding binding = expression3.resolveTypeBinding();
- assertNotNull("No binding", binding);
- Expression expression4 = assignment.getLeftHandSide();
- assertTrue("Not a simple name", expression4.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
- ITypeBinding binding2 = expression4.resolveTypeBinding();
- assertNotNull("No binding", binding2);
- assertTrue("Should be the same", binding == binding2);
- }
-
- /**
- * Test for bug 45436 fix.
- * When this bug happened, the first assertion was false (2 problems found).
- * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=45436">bug 45436</a>
- * @throws JavaScriptModelException
- */
- public void test0500() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0500", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- IJavaScriptProject project = sourceUnit.getJavaScriptProject();
- Map originalOptions = project.getOptions(false);
- try {
- project.setOption(JavaScriptCore.COMPILER_PB_INVALID_JAVADOC, JavaScriptCore.ERROR);
- project.setOption(JavaScriptCore.COMPILER_PB_MISSING_JAVADOC_TAGS, JavaScriptCore.ERROR);
- project.setOption(JavaScriptCore.COMPILER_PB_MISSING_JAVADOC_COMMENTS, JavaScriptCore.ERROR);
- JavaScriptUnit result = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
- IProblem[] problems= result.getProblems();
- assertTrue(problems.length == 1);
- assertEquals("Invalid warning", "Javadoc: Missing tag for parameter a", problems[0].getMessage());
- } finally {
- project.setOptions(originalOptions);
- }
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46012
- */
- public void test0501() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0501", "JavaEditor.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- assertNotNull(result);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
- */
- public void test0502a() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // 'i' in initializer
- VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement)getASTNode(unit, 0, 0, 0);
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableDeclarationStatement.fragments().get(0);
- IVariableBinding localBinding = fragment.resolveBinding();
- assertEquals("Unexpected key", "Ltest0502/A;#0#i", localBinding.getKey()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
- */
- public void test0502b() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // 'j' in 'then' block in initializer
- IfStatement ifStatement = (IfStatement) getASTNode(unit, 0, 0, 1);
- Block block = (Block)ifStatement.getThenStatement();
- VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) block.statements().get(0);
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableDeclarationStatement.fragments().get(0);
- IVariableBinding localBinding = fragment.resolveBinding();
- assertEquals("Unexpected key", "Ltest0502/A;#0#0#j", localBinding.getKey()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
- */
- public void test0502c() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // 'i' in 'foo()'
- VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement)getASTNode(unit, 0, 1, 0);
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableDeclarationStatement.fragments().get(0);
- IVariableBinding localBinding = fragment.resolveBinding();
- assertEquals("Unexpected key", "Ltest0502/A;.foo()V#i", localBinding.getKey()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
- */
- public void test0502d() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // 'j' in 'then' block in 'foo()'
- IfStatement ifStatement = (IfStatement) getASTNode(unit, 0, 1, 1);
- Block block = (Block)ifStatement.getThenStatement();
- VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) block.statements().get(0);
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableDeclarationStatement.fragments().get(0);
- IVariableBinding localBinding = fragment.resolveBinding();
- assertEquals("Unexpected key", "Ltest0502/A;.foo()V#0#j", localBinding.getKey()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
- */
- public void test0502e() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // 'j' in 'else' block in 'foo()'
- IfStatement ifStatement = (IfStatement) getASTNode(unit, 0, 1, 1);
- Block block = (Block)ifStatement.getElseStatement();
- VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) block.statements().get(0);
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableDeclarationStatement.fragments().get(0);
- IVariableBinding localBinding = fragment.resolveBinding();
- assertEquals("Unexpected key", "Ltest0502/A;.foo()V#1#j", localBinding.getKey()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
- */
- public void test0502f() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // first 'new Object(){...}' in 'foo()'
- ExpressionStatement expressionStatement = (ExpressionStatement) getASTNode(unit, 0, 1, 2);
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
- AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
- ITypeBinding typeBinding = anonymousClassDeclaration.resolveBinding();
- assertEquals("Unexpected key", "Ltest0502/A$182;", typeBinding.getKey()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
- */
- public void test0502g() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // 'B' in 'foo()'
- TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) getASTNode(unit, 0, 1, 3);
- AbstractTypeDeclaration typeDeclaration = typeDeclarationStatement.getDeclaration();
- ITypeBinding typeBinding = typeDeclaration.resolveBinding();
- assertEquals("Unexpected key", "Ltest0502/A$206$B;", typeBinding.getKey()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
- */
- public void test0502h() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // second 'new Object(){...}' in 'foo()'
- ExpressionStatement expressionStatement = (ExpressionStatement) getASTNode(unit, 0, 1, 4);
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
- AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
- ITypeBinding typeBinding = anonymousClassDeclaration.resolveBinding();
- assertEquals("Unexpected key", "Ltest0502/A$255;", typeBinding.getKey()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
- */
- public void test0502i() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // 'field' in 'B' in 'foo()'
- TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) getASTNode(unit, 0, 1, 3);
- AbstractTypeDeclaration abstractTypeDeclaration = typeDeclarationStatement.getDeclaration();
- assertEquals("Wrong type", abstractTypeDeclaration.getNodeType(), ASTNode.TYPE_DECLARATION);
- TypeDeclaration typeDeclaration = (TypeDeclaration) abstractTypeDeclaration;
- FieldDeclaration fieldDeclaration = typeDeclaration.getFields()[0];
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fieldDeclaration.fragments().get(0);
- IVariableBinding fieldBinding = fragment.resolveBinding();
- assertEquals("Unexpected key", "Ltest0502/A$206$B;.field)I", fieldBinding.getKey()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
- */
- public void test0502j() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // 'bar()' in 'B' in 'foo()'
- TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) getASTNode(unit, 0, 1, 3);
- AbstractTypeDeclaration abstractTypeDeclaration = typeDeclarationStatement.getDeclaration();
- assertEquals("Wrong type", abstractTypeDeclaration.getNodeType(), ASTNode.TYPE_DECLARATION);
- TypeDeclaration typeDeclaration = (TypeDeclaration) abstractTypeDeclaration;
- FunctionDeclaration methodDeclaration = typeDeclaration.getMethods()[0];
- IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
- assertEquals("Unexpected key", "Ltest0502/A$206$B;.bar()V", methodBinding.getKey()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
- */
- public void test0503a() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // top level type A
- TypeDeclaration type = (TypeDeclaration)getASTNode(unit, 0);
- ITypeBinding typeBinding = type.resolveBinding();
- assertEquals("Unexpected binary name", "test0503.A", typeBinding.getBinaryName()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
- */
- public void test0503b() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // member type B in A
- TypeDeclaration type = (TypeDeclaration)getASTNode(unit, 0, 0);
- ITypeBinding typeBinding = type.resolveBinding();
- assertEquals("Unexpected binary name", "test0503.A$B", typeBinding.getBinaryName()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
- */
- public void test0503c() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // local type E in foo() in A
- TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) getASTNode(unit, 0, 1, 0);
- AbstractTypeDeclaration typeDeclaration = typeDeclarationStatement.getDeclaration();
- ITypeBinding typeBinding = typeDeclaration.resolveBinding();
- assertEquals("Unexpected binary name", "test0503.A$1$E", typeBinding.getBinaryName()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
- */
- public void test0503d() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // anonymous type new Object() {...} in foo() in A
- ExpressionStatement expressionStatement = (ExpressionStatement) getASTNode(unit, 0, 1, 1);
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
- AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
- ITypeBinding typeBinding = anonymousClassDeclaration.resolveBinding();
- assertEquals("Unexpected binary name", "test0503.A$2", typeBinding.getBinaryName()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
- */
- public void test0503e() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // type F in anonymous type new Object() {...} in foo() in A
- ExpressionStatement expressionStatement = (ExpressionStatement) getASTNode(unit, 0, 1, 1);
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
- AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
- TypeDeclaration type = (TypeDeclaration) anonymousClassDeclaration.bodyDeclarations().get(0);
- ITypeBinding typeBinding = type.resolveBinding();
- assertEquals("Unexpected binary name", "test0503.A$2$F", typeBinding.getBinaryName()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
- */
- public void test0503f() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // local type C in bar() in B in A
- FunctionDeclaration method = (FunctionDeclaration) getASTNode(unit, 0, 0, 0);
- TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) method.getBody().statements().get(0);
- AbstractTypeDeclaration typeDeclaration = typeDeclarationStatement.getDeclaration();
- ITypeBinding typeBinding = typeDeclaration.resolveBinding();
- assertEquals("Unexpected binary name", "test0503.A$1$C", typeBinding.getBinaryName()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
- */
- public void test0503g() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // anonymous type new Object() {...} in bar() in B in A
- FunctionDeclaration method = (FunctionDeclaration) getASTNode(unit, 0, 0, 0);
- ExpressionStatement expressionStatement = (ExpressionStatement) method.getBody().statements().get(1);
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
- AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
- ITypeBinding typeBinding = anonymousClassDeclaration.resolveBinding();
- assertEquals("Unexpected binary name", "test0503.A$1", typeBinding.getBinaryName()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
- */
- public void test0503h() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // type D in anonymous type new Object() {...} in bar() in B in A
- FunctionDeclaration method = (FunctionDeclaration) getASTNode(unit, 0, 0, 0);
- ExpressionStatement expressionStatement = (ExpressionStatement) method.getBody().statements().get(1);
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
- AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
- TypeDeclaration type = (TypeDeclaration) anonymousClassDeclaration.bodyDeclarations().get(0);
- ITypeBinding typeBinding = type.resolveBinding();
- assertEquals("Unexpected binary name", "test0503.A$1$D", typeBinding.getBinaryName()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
- */
- public void test0503i() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-
- // unreachable type G in foo() in A
- IfStatement ifStatement = (IfStatement) getASTNode(unit, 0, 1, 2);
- Block block = (Block)ifStatement.getThenStatement();
- TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) block.statements().get(0);
- AbstractTypeDeclaration typeDeclaration = typeDeclarationStatement.getDeclaration();
- ITypeBinding typeBinding = typeDeclaration.resolveBinding();
- assertEquals("Unexpected binary name", null, typeBinding.getBinaryName()); //$NON-NLS-1$
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=47396
- */
- public void test0504() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0504", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 1, 0);
- assertNotNull(node);
- assertTrue("Not a constructor declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration declaration = (FunctionDeclaration) node;
- assertTrue("A constructor", !declaration.isConstructor());
- checkSourceRange(declaration, "public method(final int parameter);", source);
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=47396
- */
- public void test0505() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0505", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 1, 0);
- assertNotNull(node);
- assertTrue("Not a constructor declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration declaration = (FunctionDeclaration) node;
- assertTrue("A constructor", !declaration.isConstructor());
- checkSourceRange(declaration, "public method(final int parameter) { }", source);
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=46699
- */
- public void test0506() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0506", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Wrong number of problems", 0, (unit).getProblems().length); //$NON-NLS-1$
- assertNotNull(node);
- assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- assertTrue("Not a class instance creation", expressionStatement.getExpression().getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
- IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
- assertTrue("is default constructor", binding.isDefaultConstructor());
- assertNull("Has a declaring node", unit.findDeclaringNode(binding));
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=46699
- */
- public void test0507() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0507", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Wrong number of problems", 0, (unit).getProblems().length); //$NON-NLS-1$
- assertNotNull(node);
- assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- assertTrue("Not a class instance creation", expressionStatement.getExpression().getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
- IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
- assertTrue("is default constructor", binding.isDefaultConstructor());
- assertNull("Has a declaring node", unit.findDeclaringNode(binding));
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=46699
- */
- public void test0508() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0508", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(unit, 0, 1, 0);
- assertEquals("Wrong number of problems", 0, (unit).getProblems().length); //$NON-NLS-1$
- assertNotNull(node);
- assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- assertTrue("Not a class instance creation", expressionStatement.getExpression().getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
- IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
- assertTrue("not a default constructor", !binding.isDefaultConstructor());
- assertNotNull("Has no declaring node", unit.findDeclaringNode(binding));
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=46699
- */
- public void test0509() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0509", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Wrong number of problems", 0, (unit).getProblems().length); //$NON-NLS-1$
- assertNotNull(node);
- assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- assertTrue("Not a class instance creation", expressionStatement.getExpression().getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
- IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
- assertTrue("not a default constructor", !binding.isDefaultConstructor());
- assertNull("Has a declaring node", unit.findDeclaringNode(binding));
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=46699
- */
- public void test0510() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0510", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Wrong number of problems", 0, (unit).getProblems().length); //$NON-NLS-1$
- assertNotNull(node);
- assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- assertTrue("Not a class instance creation", expressionStatement.getExpression().getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
- IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
- assertFalse("is default constructor", binding.isDefaultConstructor());
- assertNull("Has a declaring node", unit.findDeclaringNode(binding));
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=46699
- */
- public void test0511() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0511", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Wrong number of problems", 0, (unit).getProblems().length); //$NON-NLS-1$
- assertNotNull(node);
- assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- assertTrue("Not a class instance creation", expressionStatement.getExpression().getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
- IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
- assertFalse("is default constructor", binding.isDefaultConstructor());
- assertNull("Has a declaring node", unit.findDeclaringNode(binding));
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=47326
- */
- public void test0512() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0512", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(unit, 0, 0);
- assertEquals("Wrong number of problems", 2, unit.getProblems().length); //$NON-NLS-1$
- assertNotNull(node);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration declaration = (FunctionDeclaration) node;
- assertTrue("Not a constructor", declaration.isConstructor());
- checkSourceRange(declaration, "public A();", source);
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=49429
- */
- public void test0513() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0513", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
- }
-
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=48502
- */
- public void test0514() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0514", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=49204
- */
- public void test0515() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0515", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a if statement", node.getNodeType() == ASTNode.IF_STATEMENT);
- IfStatement ifStatement = (IfStatement) node;
- assertTrue("not an empty statement", ifStatement.getThenStatement().getNodeType() == ASTNode.EMPTY_STATEMENT);
- checkSourceRange(ifStatement.getThenStatement(), ";", source);
- Statement statement = ifStatement.getElseStatement();
- assertTrue("not a if statement", statement.getNodeType() == ASTNode.IF_STATEMENT);
- ifStatement = (IfStatement) statement;
- assertTrue("not an empty statement", ifStatement.getThenStatement().getNodeType() == ASTNode.EMPTY_STATEMENT);
- checkSourceRange(ifStatement.getThenStatement(), ";", source);
- Statement statement2 = ifStatement.getElseStatement();
- assertTrue("not an empty statement", statement2.getNodeType() == ASTNode.EMPTY_STATEMENT);
- checkSourceRange(statement2, ";", source);
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
- */
- public void test0516() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0516", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION);
- FunctionDeclaration declaration = (FunctionDeclaration) node;
- ASTParser parser = ASTParser.newParser(AST.JLS3);
- parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
- parser.setSource(source);
- parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
- parser.setCompilerOptions(JavaScriptCore.getOptions());
- ASTNode result2 = parser.createAST(null);
- assertNotNull("No node", result2);
- assertTrue("not a type declaration", result2.getNodeType() == ASTNode.TYPE_DECLARATION);
- TypeDeclaration typeDeclaration = (TypeDeclaration) result2;
- List bodyDeclarations = typeDeclaration.bodyDeclarations();
- assertEquals("wrong size", 1, bodyDeclarations.size());
- BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
- assertTrue(declaration.subtreeMatch(new ASTMatcher(), bodyDeclaration));
- ASTNode root = bodyDeclaration.getRoot();
- assertNotNull("No root", root);
- assertTrue("not a compilation unit", root.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) root;
- assertEquals("wrong problem size", 0, compilationUnit.getProblems().length);
- assertNotNull("No comments", compilationUnit.getCommentList());
- assertEquals("Wrong size", 3, compilationUnit.getCommentList().size());
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
- */
- public void test0517() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0517", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
- assertNotNull("No comments", unit.getCommentList());
- assertEquals("Wrong size", 3, unit.getCommentList().size());
- ASTNode node = getASTNode(unit, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION);
- FieldDeclaration declaration = (FieldDeclaration) node;
- ASTParser parser = ASTParser.newParser(AST.JLS3);
- parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
- parser.setSource(source);
- parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
- parser.setCompilerOptions(JavaScriptCore.getOptions());
- ASTNode result2 = parser.createAST(null);
- assertNotNull("No node", result2);
- assertTrue("not a type declaration", result2.getNodeType() == ASTNode.TYPE_DECLARATION);
- TypeDeclaration typeDeclaration = (TypeDeclaration) result2;
- List bodyDeclarations = typeDeclaration.bodyDeclarations();
- assertEquals("wrong size", 1, bodyDeclarations.size());
- BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
- assertTrue(declaration.subtreeMatch(new ASTMatcher(), bodyDeclaration));
- ASTNode root = bodyDeclaration.getRoot();
- assertNotNull("No root", root);
- assertTrue("not a compilation unit", root.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) root;
- assertEquals("wrong problem size", 0, compilationUnit.getProblems().length);
- assertNotNull("No comments", compilationUnit.getCommentList());
- assertEquals("Wrong size", 2, compilationUnit.getCommentList().size());
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
- */
- public void test0518() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0518", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not an initializer", node.getNodeType() == ASTNode.INITIALIZER);
- Initializer declaration = (Initializer) node;
- ASTParser parser = ASTParser.newParser(AST.JLS3);
- parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
- parser.setSource(source);
- parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
- parser.setCompilerOptions(JavaScriptCore.getOptions());
- ASTNode result2 = parser.createAST(null);
- assertNotNull("No node", result2);
- assertTrue("not a type declaration", result2.getNodeType() == ASTNode.TYPE_DECLARATION);
- TypeDeclaration typeDeclaration = (TypeDeclaration) result2;
- List bodyDeclarations = typeDeclaration.bodyDeclarations();
- assertEquals("wrong size", 1, bodyDeclarations.size());
- BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
- assertTrue(declaration.subtreeMatch(new ASTMatcher(), bodyDeclaration));
- ASTNode root = bodyDeclaration.getRoot();
- assertNotNull("No root", root);
- assertTrue("not a compilation unit", root.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) root;
- assertEquals("wrong problem size", 0, compilationUnit.getProblems().length);
- assertNotNull("No comments", compilationUnit.getCommentList());
- assertEquals("Wrong size", 3, compilationUnit.getCommentList().size());
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
- */
- public void test0519() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0519", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
- assertNotNull("No comments", unit.getCommentList());
- assertEquals("Wrong size", 2, unit.getCommentList().size());
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertNotNull("No node", node);
- ASTNode statement = node;
- ASTParser parser = ASTParser.newParser(AST.JLS3);
- parser.setKind(ASTParser.K_STATEMENTS);
- parser.setSource(source);
- parser.setSourceRange(statement.getStartPosition(), statement.getLength());
- parser.setCompilerOptions(JavaScriptCore.getOptions());
- ASTNode result2 = parser.createAST(null);
- assertNotNull("No node", result2);
- assertTrue("not a block", result2.getNodeType() == ASTNode.BLOCK);
- Block block = (Block) result2;
- List statements = block.statements();
- assertEquals("wrong size", 1, statements.size());
- Statement statement2 = (Statement) statements.get(0);
- assertTrue(statement.subtreeMatch(new ASTMatcher(), statement2));
- ASTNode root = statement2.getRoot();
- assertNotNull("No root", root);
- assertTrue("not a compilation unit", root.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) root;
- assertEquals("wrong problem size", 0, compilationUnit.getProblems().length);
- assertNotNull("No comments", compilationUnit.getCommentList());
- assertEquals("Wrong size", 1, compilationUnit.getCommentList().size());
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
- */
- public void test0520() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0520", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
- assertNotNull("No comments", unit.getCommentList());
- assertEquals("Wrong size", 2, unit.getCommentList().size());
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a block", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT);
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- ASTParser parser = ASTParser.newParser(AST.JLS3);
- parser.setKind(ASTParser.K_EXPRESSION);
- parser.setSource(source);
- parser.setSourceRange(expression.getStartPosition(), expression.getLength());
- parser.setCompilerOptions(JavaScriptCore.getOptions());
- ASTNode result2 = parser.createAST(null);
- assertNotNull("No node", result2);
- assertTrue("not a method invocation", result2.getNodeType() == ASTNode.FUNCTION_INVOCATION);
- assertTrue(expression.subtreeMatch(new ASTMatcher(), result2));
- ASTNode root = result2.getRoot();
- assertNotNull("No root", root);
- assertTrue("not a compilation unit", root.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) root;
- assertEquals("wrong problem size", 0, compilationUnit.getProblems().length);
- assertNotNull("No comments", compilationUnit.getCommentList());
- assertEquals("Wrong size", 1, compilationUnit.getCommentList().size());
- }
- /**
- * Ensure an OperationCanceledException is correcly thrown when progress monitor is canceled
- * @deprecated using deprecated code
- */
- public void test0521() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0521", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-
- // count the number of time isCanceled() is called when converting this source unit
- WorkingCopyOwner owner = new WorkingCopyOwner() {};
- CancelCounter counter = new CancelCounter();
- ASTParser parser = ASTParser.newParser(AST.JLS2);
- parser.setSource(sourceUnit);
- parser.setResolveBindings(true);
- parser.setWorkingCopyOwner(owner);
- parser.createAST(counter);
-
- // throw an OperatonCanceledException at each point isCanceled() is called
- for (int i = 0; i < counter.count; i++) {
- boolean gotException = false;
- try {
- parser = ASTParser.newParser(AST.JLS2);
- parser.setSource(sourceUnit);
- parser.setResolveBindings(true);
- parser.setWorkingCopyOwner(owner);
- parser.createAST(new Canceler(i));
- } catch (OperationCanceledException e) {
- gotException = true;
- }
- assertTrue("Should get an OperationCanceledException (" + i + ")", gotException);
- }
-
- // last should not throw an OperationCanceledException
- parser = ASTParser.newParser(AST.JLS2);
- parser.setSource(sourceUnit);
- parser.setResolveBindings(true);
- parser.setWorkingCopyOwner(owner);
- parser.createAST(new Canceler(counter.count));
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
- */
- public void test0522() throws JavaScriptModelException {
- IClassFile classFile = getClassFile("Converter" , "bins", "test0522", "Test.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- assertNotNull(classFile);
- assertNotNull(classFile.getSource());
- IType type = classFile.getType();
- assertNotNull(type);
- IFunction[] methods = type.getFunctions();
- assertNotNull(methods);
- assertEquals("wrong size", 2, methods.length);
- IFunction method = methods[1];
- ISourceRange sourceRange = method.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
- IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
- assertNotNull(methodBinding);
- List statements = ((FunctionDeclaration) node).getBody().statements();
- assertEquals("wrong size", 2, statements.size());
- ASTNode node2 = (ASTNode) statements.get(1);
- assertNotNull(node2);
- assertTrue("Not an expression statement", node2.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
- ExpressionStatement expressionStatement = (ExpressionStatement) node2;
- Expression expression = expressionStatement.getExpression();
- assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
- FunctionInvocation methodInvocation = (FunctionInvocation) expression;
- Expression expression2 = methodInvocation.getExpression();
- assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
- SimpleName simpleName = (SimpleName) expression2;
- IBinding binding = simpleName.resolveBinding();
- assertNotNull("No binding", binding); //$NON-NLS-1$
- assertTrue("wrong type", binding.getKind() == IBinding.VARIABLE); //$NON-NLS-1$
- IVariableBinding variableBinding = (IVariableBinding) binding;
- assertEquals("Wrong name", "a", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
- SimpleName simpleName2 = methodInvocation.getName();
- assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
- IBinding binding2 = simpleName2.resolveBinding();
- assertNotNull("no binding2", binding2); //$NON-NLS-1$
- assertTrue("Wrong type", binding2.getKind() == IBinding.METHOD); //$NON-NLS-1$
- IFunctionBinding methodBinding2 = (IFunctionBinding) binding2;
- assertEquals("Wrong name", "clone", methodBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
- */
- public void test0523() throws JavaScriptModelException {
- IClassFile classFile = getClassFile("Converter" , "bins", "test0523", "Test.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- assertNotNull(classFile);
- assertNotNull(classFile.getSource());
- IType type = classFile.getType();
- assertNotNull(type);
- IFunction[] methods = type.getFunctions();
- assertNotNull(methods);
- assertEquals("wrong size", 2, methods.length);
- IFunction method = methods[1];
- ISourceRange sourceRange = method.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
- List statements = ((FunctionDeclaration) node).getBody().statements();
- assertEquals("wrong size", 2, statements.size());
- ASTNode node2 = (ASTNode) statements.get(1);
- assertNotNull(node2);
- assertTrue("Not an expression statement", node2.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
- ExpressionStatement expressionStatement = (ExpressionStatement) node2;
- Expression expression = expressionStatement.getExpression();
- assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
- FunctionInvocation methodInvocation = (FunctionInvocation) expression;
- Expression expression2 = methodInvocation.getExpression();
- assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
- SimpleName simpleName = (SimpleName) expression2;
- IBinding binding = simpleName.resolveBinding();
- assertNull("No binding", binding); //$NON-NLS-1$
- SimpleName simpleName2 = methodInvocation.getName();
- assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
- */
- public void test0524() throws JavaScriptModelException {
- IClassFile classFile = getClassFile("Converter" , "bins", "test0524", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- assertNotNull(classFile);
- assertNotNull(classFile.getSource());
- IType type = classFile.getType();
- assertNotNull(type);
- IFunction[] methods = type.getFunctions();
- assertNotNull(methods);
- assertEquals("wrong size", 2, methods.length);
- IFunction method = methods[1];
- ISourceRange sourceRange = method.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
- List statements = ((FunctionDeclaration) node).getBody().statements();
- assertEquals("wrong size", 1, statements.size());
- ASTNode node2 = (ASTNode) statements.get(0);
- assertNotNull(node2);
- assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
- */
- public void test0525() throws JavaScriptModelException {
- IClassFile classFile = getClassFile("Converter" , "bins", "test0525", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- assertNotNull(classFile);
- assertNotNull(classFile.getSource());
- IType type = classFile.getType();
- assertNotNull(type);
- IFunction[] methods = type.getFunctions();
- assertNotNull(methods);
- assertEquals("wrong size", 2, methods.length);
- IFunction method = methods[1];
- ISourceRange sourceRange = method.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
- List statements = ((FunctionDeclaration) node).getBody().statements();
- assertEquals("wrong size", 1, statements.size());
- ASTNode node2 = (ASTNode) statements.get(0);
- assertNotNull(node2);
- assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node2;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
- ITypeBinding typeBinding = classInstanceCreation.resolveTypeBinding();
- assertNotNull(typeBinding);
- }
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
- */
- public void test0526() throws JavaScriptModelException {
- IClassFile classFile = getClassFile("Converter" , "bins", "test0526", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- assertNotNull(classFile);
- assertNotNull(classFile.getSource());
- IType type = classFile.getType();
- assertNotNull(type);
- IType[] memberTypes = type.getTypes();
- assertNotNull(memberTypes);
- assertEquals("wrong size", 1, memberTypes.length);
- IType memberType = memberTypes[0];
- IFunction[] methods = memberType.getFunctions();
- assertEquals("wrong size", 2, methods.length);
- IFunction method = methods[1];
- ISourceRange sourceRange = method.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
- List statements = ((FunctionDeclaration) node).getBody().statements();
- assertEquals("wrong size", 1, statements.size());
- ASTNode node2 = (ASTNode) statements.get(0);
- assertNotNull(node2);
- assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node2;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
- ITypeBinding typeBinding = classInstanceCreation.resolveTypeBinding();
- assertNotNull(typeBinding);
- assertTrue(typeBinding.isAnonymous());
- assertEquals("Wrong name", "", typeBinding.getName());
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
- */
- public void test0527() throws JavaScriptModelException {
- IClassFile classFile = getClassFile("Converter" , "bins", "test0527", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- assertNotNull(classFile);
- assertNotNull(classFile.getSource());
- IType type = classFile.getType();
- assertNotNull(type);
- IFunction[] methods = type.getFunctions();
- assertEquals("wrong size", 1, methods.length);
- IFunction method = methods[0];
- ISourceRange sourceRange = method.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertEquals("wrong name", "A", methodDeclaration.getName().getIdentifier());
- assertTrue("Not a constructor", methodDeclaration.isConstructor());
- IBinding binding = methodDeclaration.getName().resolveBinding();
- assertNotNull(binding);
- assertEquals("Wrong type", IBinding.METHOD, binding.getKind());
- List statements = ((FunctionDeclaration) node).getBody().statements();
- assertEquals("wrong size", 1, statements.size());
- ASTNode node2 = (ASTNode) statements.get(0);
- assertNotNull(node2);
- assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node2;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
- ITypeBinding typeBinding = classInstanceCreation.resolveTypeBinding();
- assertNotNull(typeBinding);
- assertTrue(typeBinding.isAnonymous());
- assertEquals("Wrong name", "", typeBinding.getName());
- }
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
- */
- public void test0528() throws JavaScriptModelException {
- IClassFile classFile = getClassFile("Converter" , "bins", "test0528", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- assertNotNull(classFile);
- assertNotNull(classFile.getSource());
- IType type = classFile.getType();
- IType[] memberTypes = type.getTypes();
- assertNotNull(memberTypes);
- assertEquals("wrong size", 1, memberTypes.length);
- IType memberType = memberTypes[0];
- ISourceRange sourceRange = memberType.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
- assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
- TypeDeclaration typeDeclaration = (TypeDeclaration) node;
- assertEquals("wrong name", "B", typeDeclaration.getName().getIdentifier());
- List bodyDeclarations = typeDeclaration.bodyDeclarations();
- assertEquals("Wrong size", 1, bodyDeclarations.size());
- BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
- assertTrue("Not a method declaration", bodyDeclaration.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
- Block block = methodDeclaration.getBody();
- List statements = block.statements();
- assertEquals("Wrong size", 1, statements.size());
- }
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
- */
- public void test0529() throws JavaScriptModelException {
- IClassFile classFile = getClassFile("Converter" , "bins", "test0529", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- assertNotNull(classFile);
- assertNotNull(classFile.getSource());
- IType type = classFile.getType();
- IType[] memberTypes = type.getTypes();
- assertNotNull(memberTypes);
- assertEquals("wrong size", 1, memberTypes.length);
- IType memberType = memberTypes[0];
- ISourceRange sourceRange = memberType.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
- assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
- TypeDeclaration typeDeclaration = (TypeDeclaration) node;
- assertEquals("wrong name", "B", typeDeclaration.getName().getIdentifier());
- List bodyDeclarations = typeDeclaration.bodyDeclarations();
- assertEquals("Wrong size", 1, bodyDeclarations.size());
- BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
- assertTrue("Not a method declaration", bodyDeclaration.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
- Block block = methodDeclaration.getBody();
- List statements = block.statements();
- assertEquals("Wrong size", 1, statements.size());
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
- */
- public void test0530() throws JavaScriptModelException {
- IClassFile classFile = getClassFile("Converter" , "bins", "test0530", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- assertNotNull(classFile);
- assertNotNull(classFile.getSource());
- IType type = classFile.getType();
- IFunction[] methods = type.getFunctions();
- assertEquals("wrong size", 3, methods.length);
- IFunction method = methods[2];
- ISourceRange sourceRange = method.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 2);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- Block block = methodDeclaration.getBody();
- List statements = block.statements();
- assertEquals("Wrong size", 2, statements.size());
-
- node = getASTNode((JavaScriptUnit) result, 0, 1);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- methodDeclaration = (FunctionDeclaration) node;
- block = methodDeclaration.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 0, statements.size());
- }
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
- */
- public void test0531() throws JavaScriptModelException {
- IClassFile classFile = getClassFile("Converter" , "bins", "test0531", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- assertNotNull(classFile);
- assertNotNull(classFile.getSource());
- IType type = classFile.getType();
- IFunction[] methods = type.getFunctions();
- assertEquals("wrong size", 5, methods.length);
- IFunction method = methods[3];
- ISourceRange sourceRange = method.getSourceRange();
- ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 5);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- Block block = methodDeclaration.getBody();
- List statements = block.statements();
- assertEquals("Wrong size", 2, statements.size());
-
- node = getASTNode((JavaScriptUnit) result, 0, 4);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- methodDeclaration = (FunctionDeclaration) node;
- block = methodDeclaration.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 0, statements.size());
-
- node = getASTNode((JavaScriptUnit) result, 0, 0);
- assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
- FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- List fragments = fieldDeclaration.fragments();
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertEquals("Wrong name", "field", fragment.getName().getIdentifier());
- assertNotNull("No initializer", expression);
-
- node = getASTNode((JavaScriptUnit) result, 0, 1);
- assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
- fieldDeclaration = (FieldDeclaration) node;
- fragments = fieldDeclaration.fragments();
- fragment = (VariableDeclarationFragment) fragments.get(0);
- expression = fragment.getInitializer();
- assertEquals("Wrong name", "i", fragment.getName().getIdentifier());
- assertNotNull("No initializer", expression);
-
- node = getASTNode((JavaScriptUnit) result, 0, 2);
- assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
- Initializer initializer = (Initializer) node;
- assertEquals("Not static", Modifier.NONE, initializer.getModifiers());
- block = initializer.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 0, statements.size());
-
- node = getASTNode((JavaScriptUnit) result, 0, 3);
- assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
- initializer = (Initializer) node;
- assertEquals("Not static", Modifier.STATIC, initializer.getModifiers());
- block = initializer.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 0, statements.size());
-
- node = getASTNode((JavaScriptUnit) result, 0, 6);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- methodDeclaration = (FunctionDeclaration) node;
- block = methodDeclaration.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 0, statements.size());
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
- */
- public void test0532() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0488", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- IType[] types = sourceUnit.getTypes();
- assertNotNull(types);
- assertEquals("wrong size", 1, types.length);
- IType type = types[0];
- IInitializer[] initializers = type.getInitializers();
- assertEquals("wrong size", 2, initializers.length);
- IInitializer init = initializers[1];
- ISourceRange sourceRange = init.getSourceRange();
- int position = sourceRange.getOffset() + sourceRange.getLength() / 2;
-
- IClassFile classFile = getClassFile("Converter" , "bins", "test0532", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- assertNotNull(classFile);
- assertNotNull(classFile.getSource());
- type = classFile.getType();
- initializers = type.getInitializers();
- assertEquals("wrong size", 0, initializers.length);
- ASTNode result = runConversion(AST.JLS3, classFile, position, false);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-
- ASTNode node = getASTNode((JavaScriptUnit) result, 0, 5);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- Block block = methodDeclaration.getBody();
- List statements = block.statements();
- assertEquals("Wrong size", 0, statements.size());
-
- node = getASTNode((JavaScriptUnit) result, 0, 4);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- methodDeclaration = (FunctionDeclaration) node;
- block = methodDeclaration.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 0, statements.size());
-
- node = getASTNode((JavaScriptUnit) result, 0, 0);
- assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
- FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- List fragments = fieldDeclaration.fragments();
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertEquals("Wrong name", "field", fragment.getName().getIdentifier());
- assertNotNull("No initializer", expression);
-
- node = getASTNode((JavaScriptUnit) result, 0, 1);
- assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
- fieldDeclaration = (FieldDeclaration) node;
- fragments = fieldDeclaration.fragments();
- fragment = (VariableDeclarationFragment) fragments.get(0);
- expression = fragment.getInitializer();
- assertEquals("Wrong name", "i", fragment.getName().getIdentifier());
- assertNotNull("No initializer", expression);
-
- node = getASTNode((JavaScriptUnit) result, 0, 2);
- assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
- Initializer initializer = (Initializer) node;
- assertEquals("Not static", Modifier.NONE, initializer.getModifiers());
- block = initializer.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 0, statements.size());
-
- node = getASTNode((JavaScriptUnit) result, 0, 3);
- assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
- initializer = (Initializer) node;
- assertEquals("Not static", Modifier.STATIC, initializer.getModifiers());
- block = initializer.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 1, statements.size());
-
- node = getASTNode((JavaScriptUnit) result, 0, 6);
- assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
- methodDeclaration = (FunctionDeclaration) node;
- block = methodDeclaration.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 0, statements.size());
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
- * @deprecated using deprecated code
- */
- public void test0533() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0533", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION);
- FunctionDeclaration declaration = (FunctionDeclaration) node;
- ASTParser parser = ASTParser.newParser(AST.JLS2);
- parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
- parser.setSource(source);
- parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
- parser.setCompilerOptions(JavaScriptCore.getOptions());
- ASTNode result2 = parser.createAST(null);
- assertNotNull("No node", result2);
- assertTrue("not a compilation unit", result2.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result2;
- assertEquals("wrong problem size", 1, compilationUnit.getProblems().length);
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
- * @deprecated using deprecated code
- */
- public void test0534() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0534", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION);
- FieldDeclaration declaration = (FieldDeclaration) node;
- ASTParser parser = ASTParser.newParser(AST.JLS2);
- parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
- parser.setSource(source);
- parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
- parser.setCompilerOptions(JavaScriptCore.getOptions());
- ASTNode result2 = parser.createAST(null);
- assertNotNull("No node", result2);
- assertTrue("not a compilation unit", result2.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result2;
- assertEquals("wrong problem size", 1, compilationUnit.getProblems().length);
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
- * @deprecated using deprecated code
- */
- public void test0535() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0535", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0);
- assertNotNull("No node", node);
- assertTrue("not an initializer", node.getNodeType() == ASTNode.INITIALIZER);
- Initializer declaration = (Initializer) node;
- ASTParser parser = ASTParser.newParser(AST.JLS2);
- parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
- parser.setSource(source);
- parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
- parser.setCompilerOptions(JavaScriptCore.getOptions());
- ASTNode result2 = parser.createAST(null);
- assertNotNull("No node", result2);
- assertTrue("not a compilation unit", result2.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result2;
- assertEquals("wrong problem size", 1, compilationUnit.getProblems().length);
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=47396
- */
- public void test0536() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0536", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- assertNotNull("No compilation unit", result);
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=51089
- */
- public void test0537a() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0537", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- assertNotNull("No compilation unit", result);
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=51089
- */
- public void test0537b() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0537", "B.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- assertNotNull("No compilation unit", result);
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=51089
- */
- public void test0537c() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0537", "C.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- assertNotNull("No compilation unit", result);
- }
- /**
- * Ensures that an AST can be created during reconcile.
- * @deprecated using deprecated code
- */
- public void test0538a() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- try {
- sourceUnit.becomeWorkingCopy(null);
- sourceUnit.getBuffer().setContents(
- "package test0538;\n" +
- "public class A {\n" +
- " int i;\n" +
- "}"
- );
- JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, false, null, null);
- assertNotNull("No level 2 compilation unit", unit);
- assertEquals("Compilation unit has wrong AST level (2)", AST.JLS2, unit.getAST().apiLevel());
- // TODO improve test for AST.JLS3
- } finally {
- sourceUnit.discardWorkingCopy();
- }
- }
- /*
- * Ensures that no AST is created during reconcile if not requested.
- */
- public void test0538b() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- try {
- sourceUnit.becomeWorkingCopy(null);
- sourceUnit.getBuffer().setContents(
- "package test0538;\n" +
- "public class A {\n" +
- " int i;\n" +
- "}"
- );
- JavaScriptUnit unit = sourceUnit.reconcile(0, false, null, null);
- assertNull("Unexpected compilation unit", unit);
- } finally {
- sourceUnit.discardWorkingCopy();
- }
- }
- /**
- * Ensures that no AST is created during reconcile if consistent.
- */
- public void test0538c() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- try {
- sourceUnit.becomeWorkingCopy(null);
- JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, false, null, null);
- assertNull("Unexpected compilation unit", unit);
- // TODO improve test for AST.JLS3
- } finally {
- sourceUnit.discardWorkingCopy();
- }
- }
- /**
- * Ensures that bindings are created during reconcile if the problem requestor is active.
- */
- public void test0538d() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- try {
- sourceUnit.becomeWorkingCopy(null);
- sourceUnit.getBuffer().setContents(
- "package test0538;\n" +
- "public class A {\n" +
- " Object field;\n" +
- "}"
- );
- // TODO improve test for AST.JLS3
- JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, false, null, null);
- ASTNode node = getASTNode(unit, 0, 0);
- assertNotNull("No node", node);
- assertTrue("Not original", isOriginal(node));
- assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION);
- FieldDeclaration declaration = (FieldDeclaration) node;
- Type type = declaration.getType();
- ITypeBinding typeBinding = type.resolveBinding();
- assertNotNull("No type binding", typeBinding);
- assertEquals("Wrong name", "Object", typeBinding.getName());
- } finally {
- sourceUnit.discardWorkingCopy();
- }
- }
- /**
- * Ensures that bindings are created during reconcile if force problem detection is turned on.
- * @deprecated using deprecated code
- */
- public void test0538e() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- try {
- ReconcilerTests.ProblemRequestor pbRequestor = new ReconcilerTests.ProblemRequestor();
- sourceUnit.becomeWorkingCopy(null);
- // TODO improve test for AST.JLS3
- JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, true/*force pb detection*/, null, null);
- ASTNode node = getASTNode(unit, 0);
- assertNotNull("No node", node);
- assertTrue("not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION);
- TypeDeclaration declaration = (TypeDeclaration) node;
- ITypeBinding typeBinding = declaration.resolveBinding();
- assertNotNull("No type binding", typeBinding);
- assertEquals("Wrong name", "A", typeBinding.getName());
- } finally {
- sourceUnit.discardWorkingCopy();
- }
- }
- /**
- * Ensures that bindings are created during reconcile if force problem detection is turned on.
- * Case of a unit containing an anonymous type.
- * (regression test for bug 55102 NPE when using ICU.reconcile(GET_AST_TRUE, ...))
- * @deprecated using deprecated code
- */
- public void test0538f() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- try {
- ReconcilerTests.ProblemRequestor pbRequestor = new ReconcilerTests.ProblemRequestor();
- sourceUnit.becomeWorkingCopy(null);
- sourceUnit.getBuffer().setContents(
- "package test0538;\n" +
- "public class A {\n" +
- " void foo() {\n" +
- " new Object() {\n" +
- " void bar() {\n" +
- " }\n" +
- " };\n" +
- " }\n" +
- "}"
- );
- // TODO improve test for AST.JLS3
- JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, true/*force pb detection*/, null, null);
- ASTNode node = getASTNode(unit, 0);
- assertNotNull("No node", node);
- } finally {
- sourceUnit.discardWorkingCopy();
- }
- }
- /**
- * Ensures that bindings are created during reconcile if force problem detection is turned on.
- * Case of a unit containing an anonymous type.
- * (regression test for bug 55102 NPE when using ICU.reconcile(GET_AST_TRUE, ...))
- * @deprecated using deprecated code
- */
- public void test0538g() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- try {
- ReconcilerTests.ProblemRequestor pbRequestor = new ReconcilerTests.ProblemRequestor();
- sourceUnit.becomeWorkingCopy(null);
- sourceUnit.getBuffer().setContents(
- "package test0538;\n" +
- "public class A {\n" +
- " void foo() {\n" +
- " new Object() {\n" +
- " void bar() {\n" +
- " }\n" +
- " };\n" +
- " }\n" +
- "}"
- );
- sourceUnit.reconcile(IJavaScriptUnit.NO_AST, false/* don't force pb detection*/, null, null);
- // TODO improve test for AST.JLS3
- JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, true/*force pb detection*/, null, null);
- ASTNode node = getASTNode(unit, 0);
- assertNotNull("No node", node);
- } finally {
- sourceUnit.discardWorkingCopy();
- }
- }
- /**
- * Ensures that asking for well known type doesn't throw a NPE if the problem requestor is not active.
- * (regression test for bug 64750 NPE in Java AST Creation - editing some random file)
- * @deprecated using deprecated code
- */
- public void test0538h() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- try {
- ReconcilerTests.ProblemRequestor pbRequestor = new ReconcilerTests.ProblemRequestor() {
- public boolean isActive() {
- return false;
- }
- };
- sourceUnit.becomeWorkingCopy(null);
- sourceUnit.getBuffer().setContents(
- "package test0538;\n" +
- "public class A {\n" +
- " Object field;\n" +
- "}"
- );
- // TODO improve test for AST.JLS3
- JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, false, null, null);
- assertEquals("Unexpected well known type", null, unit.getAST().resolveWellKnownType("void"));
- } finally {
- sourceUnit.discardWorkingCopy();
- }
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=53477
- */
- public void test0539() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0539", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 1, 0);
- assertNotNull("No node", node);
- assertTrue("not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT);
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- assertTrue("not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION);
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
- checkSourceRange(classInstanceCreation, "new A(){}.new Inner(){/*x*/}", source);
- AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
- Expression expression2 = classInstanceCreation.getExpression();
- assertTrue("not a class instance creation", expression2.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION);
- ClassInstanceCreation classInstanceCreation2 = (ClassInstanceCreation) expression2;
- AnonymousClassDeclaration anonymousClassDeclaration2 = classInstanceCreation2.getAnonymousClassDeclaration();
- assertNotNull("No anonymous class declaration", anonymousClassDeclaration2);
- checkSourceRange(anonymousClassDeclaration2, "{}", source);
- assertNotNull("No anonymous class declaration", anonymousClassDeclaration);
- checkSourceRange(anonymousClassDeclaration, "{/*x*/}", source);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=54431
- */
- public void test0540() {
- char[] source =
- ("package test0540;\n" + //$NON-NLS-1$
- "\n" + //$NON-NLS-1$
- "class Test {\n" + //$NON-NLS-1$
- " public void foo(int arg) {\n" +//$NON-NLS-1$
- " assert true;\n" +//$NON-NLS-1$
- " }\n" + //$NON-NLS-1$
- "}").toCharArray(); //$NON-NLS-1$
- IJavaScriptProject project = getJavaProject("Converter"); //$NON-NLS-1$
- Map options = project.getOptions(true);
- options.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
- options.put(JavaScriptCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaScriptCore.VERSION_1_4);
- options.put(JavaScriptCore.COMPILER_COMPLIANCE, JavaScriptCore.VERSION_1_4);
- ASTNode result = runConversion(AST.JLS3, source, "Test.js", project, options, true); //$NON-NLS-1$
- assertNotNull("No compilation unit", result); //$NON-NLS-1$
- assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- assertEquals("Problems found", 0, compilationUnit.getProblems().length);
- ASTNode node = getASTNode(compilationUnit, 0);
- assertTrue("not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
- TypeDeclaration typeDeclaration = (TypeDeclaration) node;
- ITypeBinding typeBinding = typeDeclaration.resolveBinding();
- assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
- assertEquals("Wrong name", "Test", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Wrong package", "test0540", typeBinding.getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
- assertTrue("Not an interface", typeBinding.isClass()); //$NON-NLS-1$
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=56697
- */
- public void test0541() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0541", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0);
- assertEquals("not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType());
- class Change14FieldAccessASTVisitor extends ASTVisitor {
- int counter;
- Change14FieldAccessASTVisitor() {
- counter = 0;
- }
- public void endVisit(QualifiedName qualifiedName) {
- IBinding i_binding = qualifiedName.getQualifier().resolveBinding();
- ITypeBinding type_binding = qualifiedName.getQualifier().resolveTypeBinding();
- if (i_binding == null || type_binding == null) {
- counter++;
- }
- }
- }
- Change14FieldAccessASTVisitor visitor = new Change14FieldAccessASTVisitor();
- unit.accept(visitor);
- assertEquals("Missing binding", 0, visitor.counter);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=55004
- */
- public void test0542() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0542", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0);
- assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
- FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- List fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- IVariableBinding variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "STRING_FIELD", variableBinding.getName());
- Object constantValue = variableBinding.getConstantValue();
- assertNotNull("No constant", constantValue);
- assertEquals("Wrong value", "Hello world!", constantValue);
- Expression initializer = fragment.getInitializer();
- assertNotNull("No initializer", initializer);
- checkSourceRange(initializer, "\"Hello world!\"", source);
-
- node = getASTNode(unit, 0, 1);
- assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
- fieldDeclaration = (FieldDeclaration) node;
- fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- fragment = (VariableDeclarationFragment) fragments.get(0);
- variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "BOOLEAN_FIELD", variableBinding.getName());
- constantValue = variableBinding.getConstantValue();
- assertNotNull("No constant", constantValue);
- assertEquals("Wrong value", new Boolean(true), constantValue);
- initializer = fragment.getInitializer();
- assertNotNull("No initializer", initializer);
- checkSourceRange(initializer, "true", source);
-
- node = getASTNode(unit, 0, 2);
- assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
- fieldDeclaration = (FieldDeclaration) node;
- fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- fragment = (VariableDeclarationFragment) fragments.get(0);
- variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "BYTE_FIELD", variableBinding.getName());
- constantValue = variableBinding.getConstantValue();
- assertNotNull("No constant", constantValue);
- assertEquals("Wrong value", new Byte((byte)1), constantValue);
- initializer = fragment.getInitializer();
- assertNotNull("No initializer", initializer);
- checkSourceRange(initializer, "1", source);
-
- node = getASTNode(unit, 0, 3);
- assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
- fieldDeclaration = (FieldDeclaration) node;
- fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- fragment = (VariableDeclarationFragment) fragments.get(0);
- variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "CHAR_FIELD", variableBinding.getName());
- constantValue = variableBinding.getConstantValue();
- assertNotNull("No constant", constantValue);
- assertEquals("Wrong value", new Character('{'), constantValue);
- initializer = fragment.getInitializer();
- assertNotNull("No initializer", initializer);
- checkSourceRange(initializer, "\'{\'", source);
-
- node = getASTNode(unit, 0, 4);
- assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
- fieldDeclaration = (FieldDeclaration) node;
- fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- fragment = (VariableDeclarationFragment) fragments.get(0);
- variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "DOUBLE_FIELD", variableBinding.getName());
- constantValue = variableBinding.getConstantValue();
- assertNotNull("No constant", constantValue);
- assertEquals("Wrong value", new Double("3.1415"), constantValue);
- initializer = fragment.getInitializer();
- assertNotNull("No initializer", initializer);
- checkSourceRange(initializer, "3.1415", source);
-
- node = getASTNode(unit, 0, 5);
- assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
- fieldDeclaration = (FieldDeclaration) node;
- fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- fragment = (VariableDeclarationFragment) fragments.get(0);
- variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "FLOAT_FIELD", variableBinding.getName());
- constantValue = variableBinding.getConstantValue();
- assertNotNull("No constant", constantValue);
- assertEquals("Wrong value", new Float("3.14159f"), constantValue);
- initializer = fragment.getInitializer();
- assertNotNull("No initializer", initializer);
- checkSourceRange(initializer, "3.14159f", source);
-
- node = getASTNode(unit, 0, 6);
- assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
- fieldDeclaration = (FieldDeclaration) node;
- fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- fragment = (VariableDeclarationFragment) fragments.get(0);
- variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "INT_FIELD", variableBinding.getName());
- constantValue = variableBinding.getConstantValue();
- assertNotNull("No constant", constantValue);
- assertEquals("Wrong value", Integer.valueOf("7fffffff", 16), constantValue);
- initializer = fragment.getInitializer();
- assertNotNull("No initializer", initializer);
- checkSourceRange(initializer, "Integer.MAX_VALUE", source);
-
- node = getASTNode(unit, 0, 7);
- assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
- fieldDeclaration = (FieldDeclaration) node;
- fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- fragment = (VariableDeclarationFragment) fragments.get(0);
- variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "LONG_FIELD", variableBinding.getName());
- constantValue = variableBinding.getConstantValue();
- assertNotNull("No constant", constantValue);
- assertEquals("Wrong value", new Long("34"), constantValue);
- initializer = fragment.getInitializer();
- assertNotNull("No initializer", initializer);
- checkSourceRange(initializer, "34L", source);
-
- node = getASTNode(unit, 0, 8);
- assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
- fieldDeclaration = (FieldDeclaration) node;
- fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- fragment = (VariableDeclarationFragment) fragments.get(0);
- variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "SHORT_FIELD", variableBinding.getName());
- constantValue = variableBinding.getConstantValue();
- assertNotNull("No constant", constantValue);
- assertEquals("Wrong value", new Short("130"), constantValue);
- initializer = fragment.getInitializer();
- assertNotNull("No initializer", initializer);
- checkSourceRange(initializer, "130", source);
-
- node = getASTNode(unit, 0, 9);
- assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
- fieldDeclaration = (FieldDeclaration) node;
- fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- fragment = (VariableDeclarationFragment) fragments.get(0);
- variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "int_field", variableBinding.getName());
- constantValue = variableBinding.getConstantValue();
- assertNull("Got a constant", constantValue);
- initializer = fragment.getInitializer();
- assertNotNull("No initializer", initializer);
- checkSourceRange(initializer, "Integer.MAX_VALUE", source);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=58436
- */
- public void test0543() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0543", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
- unit.accept(new GetKeyVisitor());
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51500
- */
- public void test0544() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0544", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0);
- assertEquals("not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType()); //$NON-NLS-1$
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertTrue("Not an abstract method", (methodDeclaration.getModifiers() & Modifier.ABSTRACT) != 0);
- IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
- assertNotNull("No binding", methodBinding);
- assertTrue("Not an abstract method binding", (methodBinding.getModifiers() & Modifier.ABSTRACT) != 0);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=59843
- */
- public void test0545() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0545", "First.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0);
- assertEquals("not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); //$NON-NLS-1$
- TypeDeclaration typeDeclaration = (TypeDeclaration) node;
- ITypeBinding typeBinding = typeDeclaration.resolveBinding();
- assertEquals("Wrong key", "Ltest0545/First$Test;", typeBinding.getKey());
-
- sourceUnit = getCompilationUnit("Converter", "src", "test0545", "Second.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- result = runConversion(AST.JLS3, sourceUnit, true);
- unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
- node = getASTNode(unit, 0, 0);
- assertEquals("not a method declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); //$NON-NLS-1$
- typeDeclaration = (TypeDeclaration) node;
- typeBinding = typeDeclaration.resolveBinding();
- assertEquals("Wrong key", "Ltest0545/Second$Test;", typeBinding.getKey());
-
- sourceUnit = getCompilationUnit("Converter", "src", "test0545", "Third.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- result = runConversion(AST.JLS3, sourceUnit, true);
- unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
- node = getASTNode(unit, 0, 0);
- assertEquals("not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); //$NON-NLS-1$
- typeDeclaration = (TypeDeclaration) node;
- typeBinding = typeDeclaration.resolveBinding();
- assertEquals("Wrong key", "Ltest0545/Third$Test;", typeBinding.getKey());
-
-
- sourceUnit = getCompilationUnit("Converter", "src", "test0545", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- result = runConversion(AST.JLS3, sourceUnit, true);
- unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
- node = getASTNode(unit, 0);
- assertEquals("not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); //$NON-NLS-1$
- typeDeclaration = (TypeDeclaration) node;
- typeBinding = typeDeclaration.resolveBinding();
- assertEquals("Wrong key", "Ltest0545/Test;", typeBinding.getKey());
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=59848
- */
- public void test0546() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0546", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 1, 0, 0);
- assertEquals("not a variable declaration", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType()); //$NON-NLS-1$
- VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
- List fragments = variableDeclarationStatement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- IVariableBinding variableBinding = fragment.resolveBinding();
- ITypeBinding typeBinding = variableBinding.getType();
- assertTrue("An anonymous type binding", !typeBinding.isAnonymous());
- Expression initializer = fragment.getInitializer();
- assertEquals("not a class instance creation", ASTNode.CLASS_INSTANCE_CREATION, initializer.getNodeType()); //$NON-NLS-1$
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) initializer;
- AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
- ITypeBinding typeBinding2 = anonymousClassDeclaration.resolveBinding();
- assertTrue("Not an anonymous type binding", typeBinding2.isAnonymous());
- ITypeBinding typeBinding3 = classInstanceCreation.resolveTypeBinding();
- assertTrue("Not an anonymous type binding", typeBinding3.isAnonymous());
- node = getASTNode(unit, 1, 0, 1);
- assertEquals("not a expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType()); //$NON-NLS-1$
- ExpressionStatement statement = (ExpressionStatement) node;
- Expression expression = statement.getExpression();
- assertEquals("not a method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType()); //$NON-NLS-1$
- FunctionInvocation methodInvocation = (FunctionInvocation) expression;
- Expression expression2 = methodInvocation.getExpression();
- assertEquals("not a simple name", ASTNode.SIMPLE_NAME, expression2.getNodeType()); //$NON-NLS-1$
- SimpleName simpleName = (SimpleName) expression2;
- ITypeBinding typeBinding4 = simpleName.resolveTypeBinding();
- assertTrue("An anonymous type binding", !typeBinding4.isAnonymous());
- Type type = classInstanceCreation.getType();
- IBinding binding = type.resolveBinding();
- assertEquals("Wrong type", IBinding.TYPE, binding.getKind());
- ITypeBinding typeBinding5 = (ITypeBinding) binding;
- assertTrue("An anonymous type binding", !typeBinding5.isAnonymous());
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=60078
- */
- public void test0547() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0547", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("not a type declaration statement", ASTNode.TYPE_DECLARATION_STATEMENT, node.getNodeType()); //$NON-NLS-1$
- TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) node;
- AbstractTypeDeclaration typeDeclaration = typeDeclarationStatement.getDeclaration();
- ITypeBinding typeBinding = typeDeclaration.resolveBinding();
- assertEquals("Wrong key", "Ltest0547/A$74$Local;", typeBinding.getKey());
-
- List bodyDeclarations = typeDeclaration.bodyDeclarations();
- assertEquals("wrong size", 3, bodyDeclarations.size());
- BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
- assertEquals("not a type declaration statement", ASTNode.TYPE_DECLARATION, bodyDeclaration.getNodeType()); //$NON-NLS-1$
- TypeDeclaration typeDeclaration2 = (TypeDeclaration) bodyDeclaration;
-
- typeBinding = typeDeclaration2.resolveBinding();
- assertEquals("Wrong key", "Ltest0547/A$100$LocalMember;", typeBinding.getKey());
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=60581
- */
- public void test0548() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0548", "PaletteStackEditPart.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48502
- */
- public void test0549() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0549", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48502
- */
- public void test0550() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0550", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=60848
- */
- public void test0551() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0551", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 1, problems.length); //$NON-NLS-1$
- IProblem problem = problems[0];
- assertEquals("wrong end position", source.length - 1, problem.getSourceEnd());
- }
-
- public void test0552() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0552", "Test.js");
- char[] source = sourceUnit.getSource().toCharArray();
- JavaScriptUnit result = (JavaScriptUnit) runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("Got errors", 0, result.getProblems().length);
- TypeDeclaration declaration = (TypeDeclaration) result.types().get(0);
- Block body = declaration.getMethods()[0].getBody();
- ExpressionStatement expr = (ExpressionStatement) body.statements().get(0);
- FunctionInvocation invocation = (FunctionInvocation) expr.getExpression();
- InfixExpression node = (InfixExpression) invocation.arguments().get(0);
- ITypeBinding typeBinding = node.resolveTypeBinding();
- assertEquals("wrong type", "java.lang.String", typeBinding.getQualifiedName());
- checkSourceRange(node, "\"a\" + \"a\" + \"a\"", source);
- List extendedOperands = node.extendedOperands();
- assertEquals("Wrong size", 1, extendedOperands.size());
- Expression leftOperand = node.getLeftOperand();
- checkSourceRange(leftOperand, "\"a\"", source);
- typeBinding = leftOperand.resolveTypeBinding();
- assertEquals("wrong type", "java.lang.String", typeBinding.getQualifiedName());
- Expression rightOperand = node.getRightOperand();
- checkSourceRange(rightOperand, "\"a\"", source);
- typeBinding = rightOperand.resolveTypeBinding();
- assertEquals("wrong type", "java.lang.String", typeBinding.getQualifiedName());
- Expression expression = (Expression) extendedOperands.get(0);
- checkSourceRange(expression, "\"a\"", source);
- typeBinding = expression.resolveTypeBinding();
- assertEquals("wrong type", "java.lang.String", typeBinding.getQualifiedName());
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=61946
- */
- public void test0553() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0553", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0);
- assertEquals("Not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType());
- FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- List fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- IVariableBinding variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- Object constantValue = variableBinding.getConstantValue();
- assertNull("Got a constant value", constantValue);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=61946
- */
- public void test0554() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0554", "B.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
- ReturnStatement returnStatement = (ReturnStatement) node;
- Expression expression = returnStatement.getExpression();
- assertNotNull("No expression", expression);
- assertEquals("Not a method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType());
- FunctionInvocation methodInvocation = (FunctionInvocation) expression;
- Expression expression2 = methodInvocation.getExpression();
- checkSourceRange(expression2, "A", source);
- ITypeBinding typeBinding = expression2.resolveTypeBinding();
- assertEquals("wrong type", "test0554.A", typeBinding.getQualifiedName());
- IVariableBinding[] fields = typeBinding.getDeclaredFields();
- assertEquals("Wrong size", 1, fields.length);
- IVariableBinding variableBinding = fields[0];
- Object constantValue = variableBinding.getConstantValue();
- assertNotNull("Missing constant", constantValue);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=61946
- */
- public void test0555() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0555", "B.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
- ReturnStatement returnStatement = (ReturnStatement) node;
- Expression expression = returnStatement.getExpression();
- assertNotNull("No expression", expression);
- assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, expression.getNodeType());
- QualifiedName qualifiedName = (QualifiedName) expression;
- Name name = qualifiedName.getQualifier();
- checkSourceRange(name, "A", source);
- ITypeBinding typeBinding = name.resolveTypeBinding();
- assertEquals("wrong type", "test0555.A", typeBinding.getQualifiedName());
- IVariableBinding[] fields = typeBinding.getDeclaredFields();
- assertEquals("Wrong size", 1, fields.length);
- IVariableBinding variableBinding = fields[0];
- Object constantValue = variableBinding.getConstantValue();
- assertNotNull("No constant value", constantValue);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=62463
- */
- public void test0556() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0556", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 1, 0);
- assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- assertEquals("Not an method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType());
- FunctionInvocation methodInvocation = (FunctionInvocation) expression;
- Expression expression2 = methodInvocation.getExpression();
- checkSourceRange(expression2, "(aa.bar())", source);
- SimpleName simpleName = methodInvocation.getName();
- checkSourceRange(simpleName, "size", source);
- checkSourceRange(expression, "(aa.bar()).size()", source);
- checkSourceRange(expressionStatement, "(aa.bar()).size();", source);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=62463
- */
- public void test0557() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0557", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 1, 0);
- assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- assertEquals("Not an method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType());
- FunctionInvocation methodInvocation = (FunctionInvocation) expression;
- Expression expression2 = methodInvocation.getExpression();
- checkSourceRange(expression2, "(aa.bar())", source);
- SimpleName simpleName = methodInvocation.getName();
- checkSourceRange(simpleName, "get", source);
- checkSourceRange(expression, "(aa.bar()).get(0)", source);
- checkSourceRange(expressionStatement, "(aa.bar()).get(0);", source);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65090
- * @deprecated using deprecated code
- */
- public void test0558() {
- String src = "\tSystem.out.println(\"Hello\");\n\tSystem.out.println(\"World\");\n";
- char[] source = src.toCharArray();
- ASTParser parser = ASTParser.newParser(AST.JLS2);
- parser.setKind (ASTParser.K_STATEMENTS);
- parser.setSource (source);
- ASTNode result = parser.createAST (null);
- assertNotNull("no result", result);
- assertEquals("Wrong type", ASTNode.BLOCK, result.getNodeType());
- Block block = (Block) result;
- List statements = block.statements();
- assertNotNull("No statements", statements);
- assertEquals("Wrong size", 2, statements.size());
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
- */
- public void test0559() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0559", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
- IfStatement ifStatement = (IfStatement) node;
- Expression expression = ifStatement.getExpression();
- assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
- InfixExpression infixExpression = (InfixExpression) expression;
- Expression expression2 = infixExpression.getLeftOperand();
- assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
- FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
- Expression expression3 = methodInvocation.getExpression();
- assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
- ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
- Expression expression4 = parenthesizedExpression.getExpression();
- assertEquals("Wrong type", ASTNode.STRING_LITERAL, expression4.getNodeType());
- checkSourceRange(expression4, "\" \"", source);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
- */
- public void test0560() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0560", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
- IfStatement ifStatement = (IfStatement) node;
- Expression expression = ifStatement.getExpression();
- assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
- InfixExpression infixExpression = (InfixExpression) expression;
- Expression expression2 = infixExpression.getLeftOperand();
- assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
- FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
- Expression expression3 = methodInvocation.getExpression();
- assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
- ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
- Expression expression4 = parenthesizedExpression.getExpression();
- assertEquals("Wrong type", ASTNode.STRING_LITERAL, expression4.getNodeType());
- checkSourceRange(expression4, "\" \"", source);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
- */
- public void test0561() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0561", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
- IfStatement ifStatement = (IfStatement) node;
- Expression expression = ifStatement.getExpression();
- assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
- InfixExpression infixExpression = (InfixExpression) expression;
- Expression expression2 = infixExpression.getLeftOperand();
- assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
- FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
- Expression expression3 = methodInvocation.getExpression();
- assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
- ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
- Expression expression4 = parenthesizedExpression.getExpression();
- assertEquals("Wrong type", ASTNode.STRING_LITERAL, expression4.getNodeType());
- checkSourceRange(expression4, "\" \"", source);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
- */
- public void test0562() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0562", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
- IfStatement ifStatement = (IfStatement) node;
- Expression expression = ifStatement.getExpression();
- assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
- InfixExpression infixExpression = (InfixExpression) expression;
- Expression expression2 = infixExpression.getLeftOperand();
- assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
- FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
- Expression expression3 = methodInvocation.getExpression();
- assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
- ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
- Expression expression4 = parenthesizedExpression.getExpression();
- assertEquals("Wrong type", ASTNode.STRING_LITERAL, expression4.getNodeType());
- checkSourceRange(expression4, "\" \"", source);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
- */
- public void test0563() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0563", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
- IfStatement ifStatement = (IfStatement) node;
- Expression expression = ifStatement.getExpression();
- assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
- InfixExpression infixExpression = (InfixExpression) expression;
- Expression expression2 = infixExpression.getLeftOperand();
- assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
- FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
- Expression expression3 = methodInvocation.getExpression();
- assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
- ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
- Expression expression4 = parenthesizedExpression.getExpression();
- checkSourceRange(expression4, "new String()", source);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
- */
- public void test0564() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0564", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
- IfStatement ifStatement = (IfStatement) node;
- Expression expression = ifStatement.getExpression();
- assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
- InfixExpression infixExpression = (InfixExpression) expression;
- Expression expression2 = infixExpression.getLeftOperand();
- assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
- FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
- Expression expression3 = methodInvocation.getExpression();
- assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
- ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
- Expression expression4 = parenthesizedExpression.getExpression();
- checkSourceRange(expression4, "new String()", source);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
- */
- public void test0565() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0565", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
- IfStatement ifStatement = (IfStatement) node;
- Expression expression = ifStatement.getExpression();
- assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
- InfixExpression infixExpression = (InfixExpression) expression;
- Expression expression2 = infixExpression.getLeftOperand();
- assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
- FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
- Expression expression3 = methodInvocation.getExpression();
- assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
- ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
- Expression expression4 = parenthesizedExpression.getExpression();
- checkSourceRange(expression4, "(/**/ String /**/) new String()", source);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=69349
- */
- public void test0566() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0566", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0);
- assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
- assertEquals("Wrong character", '}', source[node.getStartPosition() + node.getLength() - 1]);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=69349
- */
- public void test0567() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0567", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0);
- assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
- assertEquals("Wrong character", '}', source[node.getStartPosition() + node.getLength() - 1]);
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=70398
- */
- public void test0568() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0568", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=70398
- */
- public void test0570() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0570", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
- }
-
- /**
- * No binding when there is no unit name set
- */
- public void test0571() throws JavaScriptModelException {
- ASTParser parser = ASTParser.newParser(AST.JLS3);
- String source = "public class A {public boolean foo() {}}";
- parser.setSource(source.toCharArray());
- parser.setProject(getJavaProject("Converter"));
- // no unit name parser.setUnitName("A");
- parser.setResolveBindings(true);
- ASTNode node = parser.createAST(null);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) node;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
- }
-
- /**
- * No binding when there is no unit name set
- */
- public void test0572() throws JavaScriptModelException {
- ASTParser parser = ASTParser.newParser(AST.JLS3);
- String source = "public class A {public boolean foo() {}}";
- parser.setSource(source.toCharArray());
- parser.setProject(getJavaProject("Converter"));
- parser.setUnitName("A");
- parser.setResolveBindings(true);
- ASTNode node = parser.createAST(null);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) node;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 1, problems.length); //$NON-NLS-1$
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=77968
- */
- public void test0573() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0573", "Z.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- String source = sourceUnit.getSource();
- int pos = source.indexOf("his.ba");
- ASTNode result = runConversion(AST.JLS3, sourceUnit, pos, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertNotNull("Missing node", node);
- assertEquals("Wrong type", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
- ExpressionStatement expressionStatement = (ExpressionStatement) node;
- Expression expression = expressionStatement.getExpression();
- assertNotNull("Missing node", expression);
- assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression.getNodeType());
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 1, problems.length); //$NON-NLS-1$
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78735
- */
- public void test0574() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0574", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 0);
- assertNotNull("Missing node", node);
- assertEquals("Wrong type", ASTNode.FIELD_DECLARATION, node.getNodeType());
- FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- List fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- IVariableBinding variableBinding = fragment.resolveBinding();
- node = getASTNode(unit, 0, 1, 0);
- assertNotNull("Missing node", node);
- assertEquals("Wrong type", ASTNode.FIELD_DECLARATION, node.getNodeType());
- fieldDeclaration = (FieldDeclaration) node;
- fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- fragment = (VariableDeclarationFragment) fragments.get(0);
- IVariableBinding variableBinding2 = fragment.resolveBinding();
- assertFalse("are Equals", variableBinding.isEqualTo(variableBinding2));
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78735
- */
- public void test0575() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0575", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- final IProblem[] problems = unit.getProblems();
- assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
- ASTNode node = getASTNode(unit, 0, 2);
- assertNotNull("Missing node", node);
- assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
- node = getASTNode(unit, 0, 1, 1);
- assertNotNull("Missing node", node);
- assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
- methodDeclaration = (FunctionDeclaration) node;
- IFunctionBinding methodBinding2 = methodDeclaration.resolveBinding();
- assertFalse("are Equals", methodBinding.isEqualTo(methodBinding2));
- }
-
-// /**
-// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78740
-// * @deprecated marked deprecated to suppress JDOM-related deprecation warnings
-// */
-// public void test0576() throws JavaScriptModelException {
-// org.eclipse.wst.jsdt.core.jdom.DOMFactory factory = new org.eclipse.wst.jsdt.core.jdom.DOMFactory();
-// org.eclipse.wst.jsdt.core.jdom.IDOMCompilationUnit domCompilationUnit = factory.createCompilationUnit(
-// "package x; /** @model */ interface X {}", "NAME");
-// org.eclipse.wst.jsdt.core.jdom.IDOMType domType = (org.eclipse.wst.jsdt.core.jdom.IDOMType) domCompilationUnit.getFirstChild().getNextNode();
-// assertTrue("Not an interface", Flags.isInterface(domType.getFlags()));
-// domType.getComment();
-// assertTrue("Not an interface", Flags.isInterface(domType.getFlags()));
-// }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=77645
- */
- public void test0578() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0578", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertProblemsSize(unit, 0);
- unit.accept(new ASTVisitor() {
- /* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#visit(org.eclipse.wst.jsdt.core.dom.SingleVariableDeclaration)
- */
- public boolean visit(SingleVariableDeclaration node) {
- IVariableBinding binding = node.resolveBinding();
- assertNotNull("No method", binding.getDeclaringMethod());
- return false;
- }
- /* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#visit(org.eclipse.wst.jsdt.core.dom.VariableDeclarationFragment)
- */
- public boolean visit(VariableDeclarationFragment node) {
- IVariableBinding binding = node.resolveBinding();
- ASTNode parent = node.getParent();
- if (parent != null && binding != null) {
- final IFunctionBinding declaringMethod = binding.getDeclaringMethod();
- final String variableBindingName = binding.getName();
- switch(parent.getNodeType()) {
- case ASTNode.FIELD_DECLARATION :
- assertNull("Got a method", declaringMethod);
- break;
- default :
- if (variableBindingName.equals("var1")
- || variableBindingName.equals("var2")) {
- assertNull("Got a method", declaringMethod);
- } else {
- assertNotNull("No method", declaringMethod);
- String methodName = declaringMethod.getName();
- if (variableBindingName.equals("var4")) {
- assertEquals("Wrong method", "foo", methodName);
- } else if (variableBindingName.equals("var5")) {
- assertEquals("Wrong method", "foo2", methodName);
- } else if (variableBindingName.equals("var7")) {
- assertEquals("Wrong method", "foo3", methodName);
- } else if (variableBindingName.equals("var8")) {
- assertEquals("Wrong method", "X", methodName);
- } else if (variableBindingName.equals("var9")) {
- assertEquals("Wrong method", "bar3", methodName);
- } else if (variableBindingName.equals("var10")) {
- assertEquals("Wrong method", "bar3", methodName);
- } else if (variableBindingName.equals("var11")) {
- assertEquals("Wrong method", "X", methodName);
- }
- }
- }
- }
- return false;
- }
- /* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#visit(org.eclipse.wst.jsdt.core.dom.FieldAccess)
- */
- public boolean visit(FieldAccess node) {
- IVariableBinding binding = node.resolveFieldBinding();
- assertNull("No method", binding.getDeclaringMethod());
- return false;
- }
- /* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(org.eclipse.wst.jsdt.core.dom.SuperFieldAccess)
- */
- public boolean visit(SuperFieldAccess node) {
- IVariableBinding binding = node.resolveFieldBinding();
- assertNull("No method", binding.getDeclaringMethod());
- return false;
- }
- });
- }
-
-// /**
-// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=77984
-// * @deprecated
-// */
-// public void test0579() throws JavaScriptModelException {
-// IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0579", "ParserTask.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-// ASTNode result = AST.parseCompilationUnit(sourceUnit, true);
-// assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-// JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-// ASTNode node = getASTNode(compilationUnit, 0);
-// assertEquals("not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); //$NON-NLS-1$
-// TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-// assertEquals("Wrong number of body declarations", 3, typeDeclaration.bodyDeclarations().size());
-// }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=79953
- */
- public void test0580() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- workingCopy = getWorkingCopy("/Converter/src/p/X.js", true/*resolve*/);
- String source = "package p;\n" +
- "public class X {\n" +
- " d String[][]tab;\n" +
- "}";
- ASTNode node = buildAST(
- source,
- workingCopy,
- false);
- assertEquals("wrong type", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- node = getASTNode(compilationUnit, 0, 0);
- assertEquals("wrong type", ASTNode.FIELD_DECLARATION, node.getNodeType());
- FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- checkSourceRange(fieldDeclaration, "d String[][]", source.toCharArray());
- Type type = fieldDeclaration.getType();
- assertTrue("Not a simple type", type.isSimpleType());
- List fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- assertEquals("Wrong extended dimensions", 2, fragment.getExtraDimensions());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=80041
- */
- public void test0581() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- workingCopy = getWorkingCopy("/Converter/src/p/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- "package p;\n" +
- "public class X {\n" +
- " void m(Object obj) {}\n" +
- " void foo(Object obj) {}\n" +
- "}",
- workingCopy);
- assertEquals("wrong type", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- node = getASTNode(compilationUnit, 0, 0);
- assertEquals("wrong type", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- List parameters = methodDeclaration.parameters();
- SingleVariableDeclaration variableDeclaration = (SingleVariableDeclaration) parameters.get(0);
- IVariableBinding variableBinding = variableDeclaration.resolveBinding();
- node = getASTNode(compilationUnit, 0, 1);
- assertEquals("wrong type", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
- methodDeclaration = (FunctionDeclaration) node;
- parameters = methodDeclaration.parameters();
- variableDeclaration = (SingleVariableDeclaration) parameters.get(0);
- IVariableBinding variableBinding2 = variableDeclaration.resolveBinding();
- assertFalse("Bindings are equal", variableBinding.isEqualTo(variableBinding2));
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=80338
- */
- // TODO (jerome) remove this test as it has nothing to do on ASTConverterTest and it is a dup of ExistenceTests#testMethodWithInvalidParameter()
- public void test0582() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0582", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- IType[] types = sourceUnit.getTypes();
- assertEquals("wrong size", 1, types.length);
- IType type = types[0];
- IFunction[] methods = type.getFunctions();
- assertEquals("wrong size", 1, methods.length);
- IFunction method = methods[0];
- assertEquals("wrong number", 1, method.getNumberOfParameters());
- assertEquals("wrong signature", "([[I)[[[[[I", method.getSignature());
- assertEquals("wrong return type", "[[[[[I", method.getReturnType());
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
- */
- public void test0583() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " private char nextChar() {\n" +
- " return \'\\000\';\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertEquals("Got problems", 0, compilationUnit.getProblems().length);
- node = getASTNode(compilationUnit, 0, 0, 0);
- assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
- ReturnStatement statement = (ReturnStatement) node;
- Expression expression = statement.getExpression();
- assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
- CharacterLiteral literal = (CharacterLiteral) expression;
- assertEquals("Wrong character", '\000', literal.charValue());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
- */
- public void test0584() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " private char nextChar() {\n" +
- " return \'\\u0020\';\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertEquals("Got problems", 0, compilationUnit.getProblems().length);
- node = getASTNode(compilationUnit, 0, 0, 0);
- assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
- ReturnStatement statement = (ReturnStatement) node;
- Expression expression = statement.getExpression();
- assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
- CharacterLiteral literal = (CharacterLiteral) expression;
- assertEquals("Wrong character", 32, literal.charValue());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
- */
- public void test0585() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " private char nextChar() {\n" +
- " return \'\\b\';\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertEquals("Got problems", 0, compilationUnit.getProblems().length);
- node = getASTNode(compilationUnit, 0, 0, 0);
- assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
- ReturnStatement statement = (ReturnStatement) node;
- Expression expression = statement.getExpression();
- assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
- CharacterLiteral literal = (CharacterLiteral) expression;
- assertEquals("Wrong character", '\b', literal.charValue());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
- */
- public void test0586() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " private char nextChar() {\n" +
- " return \'\\t\';\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertEquals("Got problems", 0, compilationUnit.getProblems().length);
- node = getASTNode(compilationUnit, 0, 0, 0);
- assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
- ReturnStatement statement = (ReturnStatement) node;
- Expression expression = statement.getExpression();
- assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
- CharacterLiteral literal = (CharacterLiteral) expression;
- assertEquals("Wrong character", '\t', literal.charValue());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
- */
- public void test0587() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " private char nextChar() {\n" +
- " return \'\\n\';\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertEquals("Got problems", 0, compilationUnit.getProblems().length);
- node = getASTNode(compilationUnit, 0, 0, 0);
- assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
- ReturnStatement statement = (ReturnStatement) node;
- Expression expression = statement.getExpression();
- assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
- CharacterLiteral literal = (CharacterLiteral) expression;
- assertEquals("Wrong character", '\n', literal.charValue());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
- */
- public void test0588() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " private char nextChar() {\n" +
- " return \'\\f\';\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertEquals("Got problems", 0, compilationUnit.getProblems().length);
- node = getASTNode(compilationUnit, 0, 0, 0);
- assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
- ReturnStatement statement = (ReturnStatement) node;
- Expression expression = statement.getExpression();
- assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
- CharacterLiteral literal = (CharacterLiteral) expression;
- assertEquals("Wrong character", '\f', literal.charValue());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
- */
- public void test0589() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " private char nextChar() {\n" +
- " return \'\\r\';\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertEquals("Got problems", 0, compilationUnit.getProblems().length);
- node = getASTNode(compilationUnit, 0, 0, 0);
- assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
- ReturnStatement statement = (ReturnStatement) node;
- Expression expression = statement.getExpression();
- assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
- CharacterLiteral literal = (CharacterLiteral) expression;
- assertEquals("Wrong character", '\r', literal.charValue());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
- */
- public void test0590() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " private char nextChar() {\n" +
- " return \'\\\"\';\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertEquals("Got problems", 0, compilationUnit.getProblems().length);
- node = getASTNode(compilationUnit, 0, 0, 0);
- assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
- ReturnStatement statement = (ReturnStatement) node;
- Expression expression = statement.getExpression();
- assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
- CharacterLiteral literal = (CharacterLiteral) expression;
- assertEquals("Wrong character", '\"', literal.charValue());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
- */
- public void test0591() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " private char nextChar() {\n" +
- " return \'\\'\';\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertEquals("Got problems", 0, compilationUnit.getProblems().length);
- node = getASTNode(compilationUnit, 0, 0, 0);
- assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
- ReturnStatement statement = (ReturnStatement) node;
- Expression expression = statement.getExpression();
- assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
- CharacterLiteral literal = (CharacterLiteral) expression;
- assertEquals("Wrong character", '\'', literal.charValue());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
- */
- public void test0592() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " private char nextChar() {\n" +
- " return \'\\\\\';\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertEquals("Got problems", 0, compilationUnit.getProblems().length);
- node = getASTNode(compilationUnit, 0, 0, 0);
- assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
- ReturnStatement statement = (ReturnStatement) node;
- Expression expression = statement.getExpression();
- assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
- CharacterLiteral literal = (CharacterLiteral) expression;
- assertEquals("Wrong character", '\\', literal.charValue());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
- */
- public void test0593() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " private char nextChar() {\n" +
- " return \'\\077\';\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertEquals("Got problems", 0, compilationUnit.getProblems().length);
- node = getASTNode(compilationUnit, 0, 0, 0);
- assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
- ReturnStatement statement = (ReturnStatement) node;
- Expression expression = statement.getExpression();
- assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
- CharacterLiteral literal = (CharacterLiteral) expression;
- assertEquals("Wrong character", '\077', literal.charValue());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
- */
- public void test0594() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " private char nextChar() {\n" +
- " return \'\\777\';\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertEquals("Got problems", 1, compilationUnit.getProblems().length);
- node = getASTNode(compilationUnit, 0, 0);
- assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertTrue("not malformed", isMalformed(methodDeclaration));
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82985
- */
- public void test0595() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0595", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runJLS3Conversion(sourceUnit, true, false);
- assertNotNull(result);
- assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- assertProblemsSize(compilationUnit, 0);
- List imports = compilationUnit.imports();
- assertEquals("Wrong size", 1, imports.size());
- ImportDeclaration importDeclaration = (ImportDeclaration) imports.get(0);
- IBinding binding = importDeclaration.resolveBinding();
- assertNotNull("No binding", binding);
- assertEquals("Wrong type", IBinding.TYPE, binding.getKind());
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=83098
- */
- public void test0596() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " void m(String[] args) {\n" +
- " for (int i= 0; i < args.length; i++) {\n" +
- " String string= args[i];\n" +
- " }\n" +
- " for (int i= 0; i < args.length; i++) {\n" +
- " String string= args[i];\n" +
- " }\n" +
- " }\n" +
- "}\n";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertEquals("Got problems", 0, compilationUnit.getProblems().length);
- node = getASTNode(compilationUnit, 0, 0, 0);
- assertEquals("Not a for statement", ASTNode.FOR_STATEMENT, node.getNodeType());
- ForStatement forStatement = (ForStatement) node;
- Statement action = forStatement.getBody();
- assertEquals("Not a block", ASTNode.BLOCK, action.getNodeType());
- Block block = (Block) action;
- List statements = block.statements();
- assertEquals("Wrong size", 1, statements.size());
- Statement statement = (Statement) statements.get(0);
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, statement.getNodeType());
- VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) statement;
- List fragments = variableDeclarationStatement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- IVariableBinding variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
-
- node = getASTNode(compilationUnit, 0, 0, 1);
- assertEquals("Not a for statement", ASTNode.FOR_STATEMENT, node.getNodeType());
- forStatement = (ForStatement) node;
- action = forStatement.getBody();
- assertEquals("Not a block", ASTNode.BLOCK, action.getNodeType());
- block = (Block) action;
- statements = block.statements();
- assertEquals("Wrong size", 1, statements.size());
- statement = (Statement) statements.get(0);
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, statement.getNodeType());
- variableDeclarationStatement = (VariableDeclarationStatement) statement;
- fragments = variableDeclarationStatement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- fragment = (VariableDeclarationFragment) fragments.get(0);
- IVariableBinding variableBinding2 = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding2);
-
- assertFalse("Bindings are equals", variableBinding.isEqualTo(variableBinding2));
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=83210
- */
- public void test0597() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0597", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode node = runJLS3Conversion(sourceUnit, true, false);
- assertNotNull(node);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertProblemsSize(compilationUnit, 0);
- node = getASTNode(compilationUnit, 0, 0, 0);
- assertEquals("Not an if statement", ASTNode.IF_STATEMENT, node.getNodeType());
- IfStatement ifStatement = (IfStatement) node;
- Expression expression = ifStatement.getExpression();
- assertEquals("Not an instanceof expression", ASTNode.INSTANCEOF_EXPRESSION, expression.getNodeType());
- InstanceofExpression instanceofExpression = (InstanceofExpression) expression;
- Type type = instanceofExpression.getRightOperand();
- assertEquals("Not a simple type", ASTNode.SIMPLE_TYPE, type.getNodeType());
- SimpleType simpleType = (SimpleType) type;
- Name name = simpleType.getName();
- assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, name.getNodeType());
- SimpleName simpleName = (SimpleName) name;
- ITypeBinding typeBinding = simpleName.resolveTypeBinding();
-
- List imports = compilationUnit.imports();
- assertEquals("Wrong size", 2, imports.size());
- ImportDeclaration importDeclaration = (ImportDeclaration) imports.get(0);
- name = importDeclaration.getName();
- assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, name.getNodeType());
- QualifiedName qualifiedName = (QualifiedName) name;
- simpleName = qualifiedName.getName();
- ITypeBinding typeBinding2 = simpleName.resolveTypeBinding();
-
- assertTrue("not identical", typeBinding == typeBinding2);
- assertTrue("not identical", typeBinding.isEqualTo(typeBinding2));
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=84778
- */
- public void test0598() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " int m(int i) {\n" +
- " return /*start*/1 + 2 + ++i/*end*/;\n" +
- " }\n" +
- "}\n";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, node.getNodeType());
- assertEquals("Wrong debug string", "1 + 2 + ++i", node.toString());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=86541
- */
- public void test0599() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0599", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode node = runJLS3Conversion(sourceUnit, true, false);
- assertNotNull(node);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- String expectedResult =
- "The hierarchy of the type X is inconsistent\n" +
- "The type test0599.Zork2 cannot be resolved. It is indirectly referenced from required .class files";
- assertProblemsSize(compilationUnit, 2, expectedResult);
- compilationUnit.accept(new ASTVisitor() {
- public void endVisit(FunctionDeclaration methodDeclaration) {
- Block body = methodDeclaration.getBody();
- assertNotNull("No body", body);
- assertTrue("No statements", body.statements().size() != 0);
- }
- });
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=87777
- */
- public void test0600() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0600", "Try.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode node = runJLS3Conversion(sourceUnit, true, false);
- assertNotNull(node);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertProblemsSize(compilationUnit, 0);
- node = getASTNode(compilationUnit, 0, 0, 0);
- assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
- ExpressionStatement statement = (ExpressionStatement) node;
- Expression expression = statement.getExpression();
- assertEquals("Not a method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType());
- FunctionInvocation methodInvocation = (FunctionInvocation) expression;
- IFunctionBinding methodBinding = methodInvocation.resolveMethodBinding().getMethodDeclaration();
-
- sourceUnit = getCompilationUnit("Converter" , "src", "test0600", "C.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- node = runJLS3Conversion(sourceUnit, true, false);
- assertNotNull(node);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- compilationUnit = (JavaScriptUnit) node;
- assertProblemsSize(compilationUnit, 0);
- node = getASTNode(compilationUnit, 0, 0);
- assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- IFunctionBinding methodBinding2 = methodDeclaration.resolveBinding().getMethodDeclaration();
-
- assertTrue("Not equals", methodBinding.isEqualTo(methodBinding2));
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=89014
- */
- public void test0601() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " Runnable one= new Runnable(){\n" +
- " public void run() {\n" +
- " }\n" +
- " };\n" +
- " Runnable two= new Runnable(){\n" +
- " public void run() {\n" +
- " }\n" +
- " };\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertProblemsSize(compilationUnit, 0);
- node = getASTNode(compilationUnit, 0, 0);
- assertEquals("Not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType());
- FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- List fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertEquals("Not a class instance creation", ASTNode.CLASS_INSTANCE_CREATION, expression.getNodeType());
- ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
- AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
- assertNotNull("No anonymous", anonymousClassDeclaration);
- List bodyDeclarations = anonymousClassDeclaration.bodyDeclarations();
- assertEquals("Wrong size", 1, bodyDeclarations.size());
- BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
- assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, bodyDeclaration.getNodeType());
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
- IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
-
- node = getASTNode(compilationUnit, 0, 1);
- assertEquals("Not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType());
- fieldDeclaration = (FieldDeclaration) node;
- fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- fragment = (VariableDeclarationFragment) fragments.get(0);
- expression = fragment.getInitializer();
- assertEquals("Not a class instance creation", ASTNode.CLASS_INSTANCE_CREATION, expression.getNodeType());
- classInstanceCreation = (ClassInstanceCreation) expression;
- anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
- assertNotNull("No anonymous", anonymousClassDeclaration);
- bodyDeclarations = anonymousClassDeclaration.bodyDeclarations();
- assertEquals("Wrong size", 1, bodyDeclarations.size());
- bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
- assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, bodyDeclaration.getNodeType());
- methodDeclaration = (FunctionDeclaration) bodyDeclaration;
- IFunctionBinding methodBinding2 = methodDeclaration.resolveBinding();
-
- assertFalse("Bindings are equals", methodBinding.isEqualTo(methodBinding2));
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=70526
- */
- public void test0602() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0602", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode node = runJLS3Conversion(sourceUnit, true, false);
- assertNotNull(node);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertProblemsSize(compilationUnit, 0);
- compilationUnit.accept(new ASTVisitor() {
- public boolean visit(StringLiteral stringLiteral) {
- assertTrue("Wrong start position", stringLiteral.getStartPosition() != 0);
- assertTrue("Wrong length", stringLiteral.getLength() != -1);
- return false;
- }
- });
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=91098
- */
- public void test0603() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0603", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode node = runJLS3Conversion(sourceUnit, true, false);
- assertNotNull(node);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertProblemsSize(compilationUnit, 0);
- assertProblemsSize(compilationUnit, 0);
- compilationUnit.accept(new ASTVisitor() {
- public boolean visit(SimpleType type) {
- assertFalse("start cannot be -1", type.getStartPosition() == -1);
- assertFalse("length cannot be 0", type.getLength() == 0);
- return false;
- }
- public boolean visit(ArrayType type) {
- assertFalse("start cannot be -1", type.getStartPosition() == -1);
- assertFalse("length cannot be 0", type.getLength() == 0);
- return true;
- }
- });
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=91098
- */
- public void test0604() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0604", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode node = runJLS3Conversion(sourceUnit, true, false);
- assertNotNull(node);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertProblemsSize(compilationUnit, 0);
- assertProblemsSize(compilationUnit, 0);
- compilationUnit.accept(new ASTVisitor() {
- public boolean visit(SimpleType type) {
- assertFalse("start cannot be -1", type.getStartPosition() == -1);
- assertFalse("length cannot be 0", type.getLength() == 0);
- return false;
- }
- public boolean visit(ArrayType type) {
- assertFalse("start cannot be -1", type.getStartPosition() == -1);
- assertFalse("length cannot be 0", type.getLength() == 0);
- return true;
- }
- });
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=92059
- * check resolvedType binding from variable ref (of array type)
- */
- public void test0605() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0605", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode node = runJLS3Conversion(sourceUnit, true, false);
- assertNotNull(node);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertProblemsSize(compilationUnit, 0);
- node = getASTNode(compilationUnit, 0, 0, 1);
- assertEquals("Not a variable declaration", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- VariableDeclarationStatement varDecl = (VariableDeclarationStatement) node;
- List fragments = varDecl.fragments();
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, expression.getNodeType());
- IBinding arraylength = ((QualifiedName)expression).resolveBinding();
- IJavaScriptElement element = arraylength.getJavaElement();
- assertNull("Shouldn't be binding for arraylength", element);
- Name name = ((QualifiedName) expression).getQualifier();
- assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, name.getNodeType());
- ITypeBinding binding = name.resolveTypeBinding();
- assertNotNull("No binding", binding);
- assertTrue("No array", binding.isArray());
-
- node = getASTNode(compilationUnit, 0, 0, 4);
- assertEquals("Not a variable declaration", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- varDecl = (VariableDeclarationStatement) node;
- fragments = varDecl.fragments();
- fragment = (VariableDeclarationFragment) fragments.get(0);
- expression = fragment.getInitializer();
- assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, expression.getNodeType());
- name = ((QualifiedName) expression).getQualifier();
- assertEquals("Not a simple name", ASTNode.QUALIFIED_NAME, name.getNodeType());
- name = ((QualifiedName) name).getName();
- assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, name.getNodeType());
- ITypeBinding binding2 = name.resolveTypeBinding();
- assertNotNull("No binding", binding2);
- assertTrue("No array", binding2.isArray());
-
- assertEquals("Not same binding", binding, binding2);
-
- node = getASTNode(compilationUnit, 0, 0, 2);
- assertEquals("Not a variable declaration", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- varDecl = (VariableDeclarationStatement) node;
- fragments = varDecl.fragments();
- fragment = (VariableDeclarationFragment) fragments.get(0);
- expression = fragment.getInitializer();
- assertEquals("Not a qualified name", ASTNode.FIELD_ACCESS, expression.getNodeType());
- expression = ((FieldAccess) expression).getExpression();
- assertEquals("Not a simple name", ASTNode.FIELD_ACCESS, expression.getNodeType());
- name = ((FieldAccess) expression).getName();
- assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, name.getNodeType());
- ITypeBinding binding3 = name.resolveTypeBinding();
- assertNotNull("No binding", binding3);
- assertTrue("No array", binding3.isArray());
-
- assertEquals("Not same binding", binding, binding3);
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=89014
- */
- public void test0606() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " public static void main(String[] args) {\n" +
- " int i = 0;\n" +
- " i += 1;\n" +
- " String s = \"\";\n" +
- " s += \"hello world\";\n" +
- " System.out.println(i+s);\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
- assertProblemsSize(compilationUnit, 0);
- node = getASTNode(compilationUnit, 0, 0, 1);
- assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
- Expression expression = ((ExpressionStatement) node).getExpression();
- assertEquals("Not an assignment", ASTNode.ASSIGNMENT, expression.getNodeType());
- Assignment assignment = (Assignment) expression;
- assertEquals("Wrong operator", Assignment.Operator.PLUS_ASSIGN, assignment.getOperator());
- ITypeBinding typeBinding = assignment.resolveTypeBinding();
- assertNotNull("No binding", typeBinding);
- assertEquals("Wrong type", "int", typeBinding.getQualifiedName());
-
- node = getASTNode(compilationUnit, 0, 0, 3);
- assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
- expression = ((ExpressionStatement) node).getExpression();
- assertEquals("Not an assignment", ASTNode.ASSIGNMENT, expression.getNodeType());
- assignment = (Assignment) expression;
- assertEquals("Wrong operator", Assignment.Operator.PLUS_ASSIGN, assignment.getOperator());
- typeBinding = assignment.resolveTypeBinding();
- assertNotNull("No binding", typeBinding);
- assertEquals("Wrong type", "java.lang.String", typeBinding.getQualifiedName());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=95262
- */
- public void test0607() throws JavaScriptModelException {
- final char[] source = "private static Category[] values = new Category[]{v1, v2, v3};".toCharArray();
- ASTParser parser = ASTParser.newParser(AST.JLS3);
- parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
- parser.setSource(source);
- ASTNode root = parser.createAST(null);
- assertNotNull("cannot be null", root);
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=96698
- */
- public void test0608() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " public static void main(String[] args) {\n" +
- " for (int /*start*/i = 0/*end*/; i < args.length; i++) {\n" +
- " System.out.println(args[i]);\n" +
- " }\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a variable declaration fragment", ASTNode.VARIABLE_DECLARATION_FRAGMENT, node.getNodeType());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) node;
- IVariableBinding variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- IJavaScriptElement javaElement = variableBinding.getJavaElement();
- assertNotNull("No java element", javaElement);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=96698
- */
- public void test0609() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " public static void main(String[] args) {\n" +
- " int /*start*/i = 0/*end*/;\n" +
- " System.out.println(i);\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a variable declaration fragment", ASTNode.VARIABLE_DECLARATION_FRAGMENT, node.getNodeType());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) node;
- IVariableBinding variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- IJavaScriptElement javaElement = variableBinding.getJavaElement();
- assertNotNull("No java element", javaElement);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=98088
- */
- public void test0610() throws JavaScriptModelException {
- final IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0610", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- final ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit unit = (JavaScriptUnit) result;
- assertProblemsSize(unit, 1, "The type Test is deprecated");
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=96698
- */
- public void test0611() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "abstract class SearchPattern {\n" +
- "}\n" +
- "class InternalSearchPattern extends SearchPattern {\n" +
- " boolean mustResolve;\n" +
- "}\n" +
- "public class X {\n" +
- " public static final int POSSIBLE_MATCH = 0;\n" +
- " public static final int ACCURATE_MATCH = 1;\n" +
- " \n" +
- " public void foo(SearchPattern pattern) {\n" +
- " int declarationLevel = ((InternalSearchPattern) pattern).mustResolve ? POSSIBLE_MATCH : ACCURATE_MATCH;\n" +
- " System.out.println(declarationLevel);\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- node = getASTNode(unit, 2, 2, 0);
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- checkSourceRange(expression, "((InternalSearchPattern) pattern).mustResolve ? POSSIBLE_MATCH : ACCURATE_MATCH", contents);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- public void test0612() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " void foo(boolean[]value) {\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- node = getASTNode(unit, 0, 0);
- assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- List parameters = methodDeclaration.parameters();
- assertEquals("Wrong size", 1, parameters.size());
- SingleVariableDeclaration variableDeclaration = (SingleVariableDeclaration) parameters.get(0);
- checkSourceRange(variableDeclaration, "boolean[]value", contents);
- Type type = variableDeclaration.getType();
- checkSourceRange(type, "boolean[]", contents);
- assertTrue("Not an array type", type.isArrayType());
- ArrayType arrayType = (ArrayType) type;
- Type componentType = arrayType.getComponentType();
- assertTrue("Not a primitive type", componentType.isPrimitiveType());
- PrimitiveType primitiveType = (PrimitiveType) componentType;
- assertEquals("Not boolean", PrimitiveType.BOOLEAN, primitiveType.getPrimitiveTypeCode());
- checkSourceRange(primitiveType, "boolean", contents);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- public void test0613() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " void foo(boolean b) {\n" +
- " Zork z = null;\n" +
- " if (b) {\n" +
- " System.out.println(z);\n" +
- " }\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 1, "Zork cannot be resolved to a type");
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- IVariableBinding binding = fragment.resolveBinding();
- assertNull("Got a binding", binding);
-
- node = getASTNode(unit, 0, 0, 1);
- assertEquals("Not an if statement", ASTNode.IF_STATEMENT, node.getNodeType());
- IfStatement ifStatement = (IfStatement) node;
- Statement statement2 = ifStatement.getThenStatement();
- assertEquals("Not a block", ASTNode.BLOCK, statement2.getNodeType());
- Block block = (Block) statement2;
- List statements = block.statements();
- assertEquals("Wrong size", 1, statements.size());
-
- Statement statement3 = (Statement) statements.get(0);
- assertEquals("Not a expression statement", ASTNode.EXPRESSION_STATEMENT, statement3.getNodeType());
- ExpressionStatement expressionStatement = (ExpressionStatement) statement3;
- Expression expression = expressionStatement.getExpression();
- assertEquals("Not a method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType());
- FunctionInvocation methodInvocation = (FunctionInvocation) expression;
- List arguments = methodInvocation.arguments();
- assertEquals("Wrong size", 1, arguments.size());
- Expression expression2 = (Expression) arguments.get(0);
- ITypeBinding typeBinding = expression2.resolveTypeBinding();
- assertNull("Got a binding", typeBinding);
- assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, expression2.getNodeType());
- SimpleName simpleName = (SimpleName) expression2;
- IBinding binding2 = simpleName.resolveBinding();
- assertNull("Got a binding", binding2);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- // https://bugs.eclipse.org/bugs/show_bug.cgi?id=105192
- public void test0614() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "class T { void m() { for (i=0, j=0; i<10; i++, j++) ; }}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", false/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false);
- final String expectedOutput = "class T {\n" +
- " void m(){\n" +
- " for (i=0, j=0; i < 10; i++, j++) ;\n" +
- " }\n" +
- "}\n";
- assertEquals("Wrong output", Util.convertToIndependantLineDelimiter(expectedOutput), Util.convertToIndependantLineDelimiter(node.toString()));
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=100041
- */
- public void test0615() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "class X {\n" +
- " static Object object;\n" +
- " static void foo() {\n" +
- " /**\n" +
- " * javadoc comment.\n" +
- " */\n" +
- " if (object instanceof String) {\n" +
- " final String clr = null;\n" +
- " }\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- node = getASTNode(unit, 0, 1, 0);
- assertNotNull("No node", node);
- assertEquals("Not an if statement", ASTNode.IF_STATEMENT, node.getNodeType());
- IfStatement ifStatement = (IfStatement) node;
- String expectedSource = "if (object instanceof String) {\n" +
- " final String clr = null;\n" +
- " }";
- checkSourceRange(ifStatement, expectedSource, contents);
- Statement statement = ifStatement.getThenStatement();
- assertNotNull("No then statement", statement);
- assertEquals("not a block", ASTNode.BLOCK, statement.getNodeType());
- Block block = (Block) statement;
- expectedSource = "{\n" +
- " final String clr = null;\n" +
- " }";
- checkSourceRange(block, expectedSource, contents);
- List statements = block.statements();
- assertEquals("Wrong size", 1, statements.size());
- Statement statement2 = (Statement) statements.get(0);
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, statement2.getNodeType());
- VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) statement2;
- checkSourceRange(variableDeclarationStatement, "final String clr = null;", contents);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=109333
- */
- public void test0616() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "class X {\n" +
- " boolean val = true && false && true && false && true;\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- node = getASTNode(unit, 0, 0);
- assertNotNull("No node", node);
- assertEquals("Not a field declaration ", ASTNode.FIELD_DECLARATION, node.getNodeType());
- final FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- final List fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- final Expression initializer = fragment.getInitializer();
- assertNotNull("No initializer", initializer);
- assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, initializer.getNodeType());
- InfixExpression infixExpression = (InfixExpression) initializer;
- final List extendedOperands = infixExpression.extendedOperands();
- assertEquals("Wrong size", 3, extendedOperands.size());
- assertEquals("Wrong operator", InfixExpression.Operator.CONDITIONAL_AND, infixExpression.getOperator());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=109333
- */
- public void test0617() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "class X {\n" +
- " boolean val = true || false || true || false || true;\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- node = getASTNode(unit, 0, 0);
- assertNotNull("No node", node);
- assertEquals("Not a field declaration ", ASTNode.FIELD_DECLARATION, node.getNodeType());
- final FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- final List fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- final Expression initializer = fragment.getInitializer();
- assertNotNull("No initializer", initializer);
- assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, initializer.getNodeType());
- InfixExpression infixExpression = (InfixExpression) initializer;
- final List extendedOperands = infixExpression.extendedOperands();
- assertEquals("Wrong size", 3, extendedOperands.size());
- assertEquals("Wrong operator", InfixExpression.Operator.CONDITIONAL_OR, infixExpression.getOperator());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
- /*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=109535
- */
- public void test0618() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " String f = \"\" + \"\" - 1;\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", false/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- node = getASTNode(unit, 0, 0);
- assertNotNull("No node", node);
- assertEquals("Not a field declaration ", ASTNode.FIELD_DECLARATION, node.getNodeType());
- final FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- final List fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- final Expression initializer = fragment.getInitializer();
- assertNotNull("No initializer", initializer);
- assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, initializer.getNodeType());
- InfixExpression infixExpression = (InfixExpression) initializer;
- List extendedOperands = infixExpression.extendedOperands();
- assertEquals("Wrong size", 0, extendedOperands.size());
- assertEquals("Wrong operator", InfixExpression.Operator.MINUS, infixExpression.getOperator());
- Expression leftOperand = infixExpression.getLeftOperand();
- assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, leftOperand.getNodeType());
- InfixExpression infixExpression2 = (InfixExpression) leftOperand;
- extendedOperands = infixExpression.extendedOperands();
- assertEquals("Wrong size", 0, extendedOperands.size());
- assertEquals("Wrong operator", InfixExpression.Operator.PLUS, infixExpression2.getOperator());
- assertEquals("Not a string literal", ASTNode.STRING_LITERAL, infixExpression2.getLeftOperand().getNodeType());
- assertEquals("Not a string literal", ASTNode.STRING_LITERAL, infixExpression2.getRightOperand().getNodeType());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=109646
- */
- public void test0619() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0619", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
- final JavaScriptUnit unit = (JavaScriptUnit) result;
- assertProblemsSize(unit, 0);
- ASTNode node = getASTNode(unit, 0, 0, 0);
- assertNotNull("No node", node);
- ASTNode statement = node;
- ASTParser parser = ASTParser.newParser(AST.JLS3);
- parser.setKind(ASTParser.K_STATEMENTS);
- parser.setSource(source);
- parser.setSourceRange(statement.getStartPosition(), statement.getLength());
- parser.setCompilerOptions(JavaScriptCore.getOptions());
- ASTNode result2 = parser.createAST(null);
- assertNotNull("No node", result2);
- assertTrue("not a block", result2.getNodeType() == ASTNode.BLOCK);
- Block block = (Block) result2;
- List statements = block.statements();
- assertEquals("wrong size", 1, statements.size());
- Statement statement2 = (Statement) statements.get(0);
- assertEquals("Statement is not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, statement2.getNodeType());
- VariableDeclarationStatement declarationStatement = (VariableDeclarationStatement) statement2;
- assertEquals("Wrong number of fragments", 4, declarationStatement.fragments().size());
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=109940
- */
- public void test0620() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println((int) \'\\0\');\n" +
- " System.out.println((int) \'\\1\');\n" +
- " System.out.println((int) \'\\2\');\n" +
- " System.out.println((int) \'\\3\');\n" +
- " System.out.println((int) \'\\4\');\n" +
- " System.out.println((int) \'\\5\');\n" +
- " System.out.println((int) \'\\6\');\n" +
- " System.out.println((int) \'\\7\');\n" +
- " System.out.println((int) \'\\077\');\n" +
- " System.out.println((int) \'\\55\');\n" +
- " System.out.println((int) \'\\77\');\n" +
- " System.out.println((int) \'\\377\');\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", false/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- unit.accept(new ASTVisitor() {
- public boolean visit(CharacterLiteral characterLiteral) {
- try {
- final String escapedValue = characterLiteral.getEscapedValue();
- final char charValue = characterLiteral.charValue();
- if (escapedValue.equals("\'\\0\'")) {
- assertEquals("Wrong value", 0, charValue);
- } else if (escapedValue.equals("\'\\1\'")) {
- assertEquals("Wrong value", 1, charValue);
- } else if (escapedValue.equals("\'\\2\'")) {
- assertEquals("Wrong value", 2, charValue);
- } else if (escapedValue.equals("\'\\3\'")) {
- assertEquals("Wrong value", 3, charValue);
- } else if (escapedValue.equals("\'\\4\'")) {
- assertEquals("Wrong value", 4, charValue);
- } else if (escapedValue.equals("\'\\5\'")) {
- assertEquals("Wrong value", 5, charValue);
- } else if (escapedValue.equals("\'\\6\'")) {
- assertEquals("Wrong value", 6, charValue);
- } else if (escapedValue.equals("\'\\7\'")) {
- assertEquals("Wrong value", 7, charValue);
- } else if (escapedValue.equals("\'\\077\'")) {
- assertEquals("Wrong value", 63, charValue);
- } else if (escapedValue.equals("\'\\55\'")) {
- assertEquals("Wrong value", 45, charValue);
- } else if (escapedValue.equals("\'\\77\'")) {
- assertEquals("Wrong value", 63, charValue);
- } else if (escapedValue.equals("\'\\377\'")) {
- assertEquals("Wrong value", 255, charValue);
- } else {
- assertTrue("Should not get there", false);
- }
- } catch(IllegalArgumentException e) {
- assertTrue("Should not happen", false);
- }
- return false;
- }
- });
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=109963
- */
- public void test0621() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " public void foo(int y) {\n" +
- " switch (y) {\n" +
- " case 1:\n" +
- " int i,j;\n" +
- " }\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", false/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- node = getASTNode(unit, 0, 0, 0);
- assertNotNull("No node", node);
- assertEquals("Not a switch statement", ASTNode.SWITCH_STATEMENT, node.getNodeType());
- SwitchStatement switchStatement = (SwitchStatement) node;
- List statements = switchStatement.statements();
- assertEquals("Wrong size", 2, statements.size());
- Statement statement = (Statement) statements.get(1);
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, statement.getNodeType());
- VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) statement;
- assertEquals("Wrong size", 2, variableDeclarationStatement.fragments().size());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=92866
- */
- public void test0622() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println((int) \'\\0\');\n" +
- " System.out.println((int) \'\\00\');\n" +
- " System.out.println((int) \'\\000\');\n" +
- " System.out.println((int) \'\\40\');\n" +
- " System.out.println((int) \'\\040\');\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", false/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- unit.accept(new ASTVisitor() {
- public boolean visit(CharacterLiteral characterLiteral) {
- try {
- characterLiteral.charValue();
- } catch(IllegalArgumentException e) {
- assertTrue("Should not happen", false);
- }
- return false;
- }
- });
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=116573
- */
- public void test0623() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "class X {\n" +
- " X(boolean x, String y, String z) {}\n" +
- " X(int x, String y) {}\n" +
- " X(String x) {\n" +
- " this(first, second);\n" +
- " }\n" +
- " void test() {\n" +
- " new X(first, second);\n" +
- " }\n" +
- " class Z extends X {\n" +
- " public Z() {\n" +
- " super(first, second);\n" +
- " }\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- String expectedOutput =
- "first cannot be resolved\n" +
- "second cannot be resolved\n" +
- "first cannot be resolved\n" +
- "second cannot be resolved\n" +
- "first cannot be resolved\n" +
- "second cannot be resolved";
- assertProblemsSize(unit, 6, expectedOutput);
- unit.accept(new ASTVisitor() {
- public boolean visit(ConstructorInvocation constructorInvocation) {
- assertNotNull("No binding", constructorInvocation.resolveConstructorBinding());
- return false;
- }
- public boolean visit(ClassInstanceCreation classInstanceCreation) {
- assertNotNull("No binding", classInstanceCreation.resolveConstructorBinding());
- return false;
- }
- });
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=118876
- */
- public void test0624() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X extend {}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- String expectedOutput =
- "Syntax error on token \"extend\", delete this token";
- assertProblemsSize(unit, 1, expectedOutput);
- unit.accept(new ASTVisitor() {
- public boolean visit(TypeDeclaration typeDeclaration) {
- assertTrue("Should be malformed", isMalformed(typeDeclaration));
- return false;
- }
- public boolean visit(JavaScriptUnit compilationUnit) {
- assertFalse("Should not be malformed", isMalformed(compilationUnit));
- return true;
- }
- });
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=118897
- */
- public void test0625() {
- char[] source =
- ("package test0305;\n" + //$NON-NLS-1$
- "\n" + //$NON-NLS-1$
- "class Test {\n" + //$NON-NLS-1$
- " public void foo(int arg) {}\n" + //$NON-NLS-1$
- "}").toCharArray(); //$NON-NLS-1$
- IJavaScriptProject project = getJavaProject("Converter"); //$NON-NLS-1$
- ASTNode result = runConversion(AST.JLS3, source, "Test.js", project); //$NON-NLS-1$
- assertNotNull("No compilation unit", result); //$NON-NLS-1$
- assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(compilationUnit, 0);
- assertTrue("not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
- TypeDeclaration typeDeclaration = (TypeDeclaration) node;
- ITypeBinding typeBinding = typeDeclaration.resolveBinding();
- assertNull("Got a type binding", typeBinding); //$NON-NLS-1$
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=118897
- */
- public void test0626() {
- char[] source =
- ("package java.lang;\n" + //$NON-NLS-1$
- "\n" + //$NON-NLS-1$
- "class Object {\n" + //$NON-NLS-1$
- " public void foo(int arg) {}\n" + //$NON-NLS-1$
- "}").toCharArray(); //$NON-NLS-1$
- IJavaScriptProject project = getJavaProject("Converter"); //$NON-NLS-1$
- ASTNode result = runConversion(AST.JLS3, source, "Object.js", project); //$NON-NLS-1$
- assertNotNull("No compilation unit", result); //$NON-NLS-1$
- assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(compilationUnit, 0);
- assertTrue("not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
- TypeDeclaration typeDeclaration = (TypeDeclaration) node;
- ITypeBinding typeBinding = typeDeclaration.resolveBinding();
- assertNull("Got a type binding", typeBinding); //$NON-NLS-1$
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=116833
- */
- public void test0627() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " void m() {\n" +
- " error();\n" +
- " new Cloneable() {\n" +
- " void xx() {}\n" +
- " };\n" +
- " new Cloneable() {\n" +
- " void xx() {}\n" +
- " };\n" + " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- String expectedOutput =
- "The method error() is undefined for the type X";
- assertProblemsSize(unit, 1, expectedOutput);
- node = getASTNode(unit, 0, 0, 1);
- assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
- Expression expression = ((ExpressionStatement) node).getExpression();
- assertEquals("Not a class instance creation", ASTNode.CLASS_INSTANCE_CREATION, expression.getNodeType());
- AnonymousClassDeclaration anonymousClassDeclaration = ((ClassInstanceCreation) expression).getAnonymousClassDeclaration();
- assertNotNull("No anonymous class declaration", anonymousClassDeclaration);
- List bodyDeclarations = anonymousClassDeclaration.bodyDeclarations();
- assertEquals("Wrong size", 1, bodyDeclarations.size());
- BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
- assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, bodyDeclaration.getNodeType());
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
- IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
-
- node = getASTNode(unit, 0, 0, 2);
- assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
- expression = ((ExpressionStatement) node).getExpression();
- assertEquals("Not a class instance creation", ASTNode.CLASS_INSTANCE_CREATION, expression.getNodeType());
- anonymousClassDeclaration = ((ClassInstanceCreation) expression).getAnonymousClassDeclaration();
- assertNotNull("No anonymous class declaration", anonymousClassDeclaration);
- bodyDeclarations = anonymousClassDeclaration.bodyDeclarations();
- assertEquals("Wrong size", 1, bodyDeclarations.size());
- bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
- assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, bodyDeclaration.getNodeType());
- methodDeclaration = (FunctionDeclaration) bodyDeclaration;
- IFunctionBinding methodBinding2 = methodDeclaration.resolveBinding();
-
- assertFalse("Should not be equal", methodBinding.isEqualTo(methodBinding2));
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=125270
- */
- public void test0628() throws JavaScriptModelException {
- ASTParser parser = ASTParser.newParser(AST.JLS3);
- parser.setKind(ASTParser.K_EXPRESSION);
- String source = "{\"red\", \"yellow\"}";
- parser.setSource(source.toCharArray());
- parser.setSourceRange(0, source.length());
- parser.setCompilerOptions(JavaScriptCore.getOptions());
- ASTNode result = parser.createAST(null);
- assertNotNull("No node", result);
- assertEquals("not an array initializer", ASTNode.ARRAY_INITIALIZER, result.getNodeType());
- ArrayInitializer arrayInitializer = (ArrayInitializer) result;
- List expressions = arrayInitializer.expressions();
- assertEquals("Wrong size", 2, expressions.size());
- assertEquals("Wrong type", ASTNode.STRING_LITERAL, ((Expression) expressions.get(0)).getNodeType());
- assertEquals("Wrong type", ASTNode.STRING_LITERAL, ((Expression) expressions.get(1)).getNodeType());
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=126598
- */
- public void test0629() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0629", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true, true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- String expectedOutput =
- "Syntax error on token \",\", invalid VariableInitializer";
- assertProblemsSize(compilationUnit, 1, expectedOutput);
- ASTNode node = getASTNode(compilationUnit, 0, 0);
- assertEquals("Not a compilation unit", ASTNode.FIELD_DECLARATION, node.getNodeType()); //$NON-NLS-1$
- FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- List fragments = fieldDeclaration.fragments();
- assertEquals("wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- checkSourceRange(fragment, "s = {\"\",,,}", source);
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=126598
- */
- public void test0630() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0630", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true, true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- String expectedOutput =
- "Syntax error on token \",\", invalid VariableInitializer";
- assertProblemsSize(compilationUnit, 1, expectedOutput);
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=126598
- */
- public void test0631() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0631", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- char[] source = sourceUnit.getSource().toCharArray();
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true, true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
- JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
- String expectedOutput =
- "Syntax error, insert \"}\" to complete ArrayInitializer\n" +
- "Syntax error, insert \";\" to complete FieldDeclaration\n" +
- "Syntax error, insert \"}\" to complete ClassBody";
- assertProblemsSize(compilationUnit, 3, expectedOutput);
- ASTNode node = getASTNode(compilationUnit, 0, 0);
- assertEquals("Not a compilation unit", ASTNode.FIELD_DECLARATION, node.getNodeType()); //$NON-NLS-1$
- FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- List fragments = fieldDeclaration.fragments();
- assertEquals("wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- checkSourceRange(fragment, "s = {\"\",,,", source);
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=128539
- */
- public void test0632() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " void m(int state) {\n" +
- " switch (state) {\n" +
- " case 4:\n" +
- " double M0,M1;\n" +
- " }\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a switch statement", ASTNode.SWITCH_STATEMENT, node.getNodeType());
- SwitchStatement statement = (SwitchStatement) node;
- List statements = statement.statements();
- assertEquals("wrong size", 2, statements.size());
- assertEquals("Not a switch case", ASTNode.SWITCH_CASE, ((ASTNode) statements.get(0)).getNodeType());
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, ((ASTNode) statements.get(1)).getNodeType());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=128539
- */
- public void test0633() {
- String src = "switch (state) {case 4:double M0,M1;}";
- char[] source = src.toCharArray();
- ASTParser parser = ASTParser.newParser(AST.JLS3);
- parser.setKind (ASTParser.K_STATEMENTS);
- parser.setSource (source);
- ASTNode result = parser.createAST (null);
- assertNotNull("no result", result);
- assertEquals("Wrong type", ASTNode.BLOCK, result.getNodeType());
- Block block = (Block) result;
- List statements = block.statements();
- assertNotNull("No statements", statements);
- assertEquals("Wrong size", 1, statements.size());
- final ASTNode node = (ASTNode) statements.get(0);
- assertEquals("Not a switch statement", ASTNode.SWITCH_STATEMENT, node.getNodeType());
- SwitchStatement statement = (SwitchStatement) node;
- statements = statement.statements();
- assertEquals("wrong size", 2, statements.size());
- assertEquals("Not a switch case", ASTNode.SWITCH_CASE, ((ASTNode) statements.get(0)).getNodeType());
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, ((ASTNode) statements.get(1)).getNodeType());
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=128823
- */
- public void test0634() throws JavaScriptModelException {
- try {
- String src =
- "public class X {\n" +
- " void foo() {\n" +
- " int i1 i1;\n" +
- " int i2 i2;\n" +
- " int i3 i3;\n" +
- " int i4 i4;\n" +
- " int i5 i5;\n" +
- " int i6 i6;\n" +
- " int i7 i7;\n" +
- " int i8 i8;\n" +
- " int i9 i9;\n" +
- " int i10 i10;\n" +
- " int i11 i11;\n" +
- " \n" +
- " for for ;;){}\n" +
- " }\n" +
- "}";
-
- char[] source = src.toCharArray();
- ASTParser parser = ASTParser.newParser(AST.JLS3);
- parser.setKind (ASTParser.K_COMPILATION_UNIT);
- parser.setSource (source);
- parser.setStatementsRecovery(true);
- ASTNode result = parser.createAST (null);
- assertNotNull("no result", result);
- } catch (ArrayIndexOutOfBoundsException e) {
- assertTrue("ArrayIndexOutOfBoundsException", false);
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=128960
- */
- public void test0635() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " void foo(Object tab[]) {\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- node = getASTNode(unit, 0, 0);
- assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
- FunctionDeclaration declaration = (FunctionDeclaration) node;
- List parameters = declaration.parameters();
- assertEquals("wrong number", 1, parameters.size());
- SingleVariableDeclaration variableDeclaration = (SingleVariableDeclaration) parameters.get(0);
- checkSourceRange(variableDeclaration, "Object tab[]", contents);
- checkSourceRange(variableDeclaration.getType(), "Object", contents);
- checkSourceRange(variableDeclaration.getName(), "tab", contents);
- assertEquals("wrong number of extra dimensions", 1, variableDeclaration.getExtraDimensions());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=128960
- */
- public void test0636() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " void foo(java.lang.Object tab[]) {\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- node = getASTNode(unit, 0, 0);
- assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
- FunctionDeclaration declaration = (FunctionDeclaration) node;
- List parameters = declaration.parameters();
- assertEquals("wrong number", 1, parameters.size());
- SingleVariableDeclaration variableDeclaration = (SingleVariableDeclaration) parameters.get(0);
- checkSourceRange(variableDeclaration, "java.lang.Object tab[]", contents);
- checkSourceRange(variableDeclaration.getType(), "java.lang.Object", contents);
- checkSourceRange(variableDeclaration.getName(), "tab", contents);
- assertEquals("wrong number of extra dimensions", 1, variableDeclaration.getExtraDimensions());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=128961
- */
- public void test0637() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " void foo() {\n" +
- " for( int i = (1); ; ) {\n" +
- " }\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a for statement", ASTNode.FOR_STATEMENT, node.getNodeType());
- ForStatement forStatement = (ForStatement) node;
- List inits = forStatement.initializers();
- assertEquals("Wrong size", 1, inits.size());
- Expression expression = (Expression) inits.get(0);
- assertEquals("Not a variable declaration expression", ASTNode.VARIABLE_DECLARATION_EXPRESSION, expression.getNodeType());
- VariableDeclarationExpression declarationExpression = (VariableDeclarationExpression) expression;
- List fragments = declarationExpression.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression initializer = fragment.getInitializer();
- checkSourceRange(initializer, "(1)", contents);
- checkSourceRange(fragment, "i = (1)", contents);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=128961
- */
- public void test0638() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " int i = (1);\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- node = getASTNode(unit, 0, 0);
- assertEquals("Not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType());
- FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
- List fragments = fieldDeclaration.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression initializer = fragment.getInitializer();
- checkSourceRange(initializer, "(1)", contents);
- checkSourceRange(fragment, "i = (1)", contents);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=128961
- */
- public void test0639() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " void foo() {\n" +
- " for( int i = (1), j = 0; ; ) {\n" +
- " }\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a for statement", ASTNode.FOR_STATEMENT, node.getNodeType());
- ForStatement forStatement = (ForStatement) node;
- List inits = forStatement.initializers();
- assertEquals("Wrong size", 1, inits.size());
- Expression expression = (Expression) inits.get(0);
- assertEquals("Not a variable declaration expression", ASTNode.VARIABLE_DECLARATION_EXPRESSION, expression.getNodeType());
- VariableDeclarationExpression declarationExpression = (VariableDeclarationExpression) expression;
- List fragments = declarationExpression.fragments();
- assertEquals("Wrong size", 2, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression initializer = fragment.getInitializer();
- checkSourceRange(initializer, "(1)", contents);
- checkSourceRange(fragment, "i = (1)", contents);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=129589
- * TODO (david) enable once fixed
- */
- public void _test0640() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " protected void primExecute() {\n" +
- " String temp= this.toString();\n" +
- " }\n" +
- " if (image != null) {\n" +
- " Object loc = null;\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false,
- true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 2, "Syntax error on token \"}\", { expected after this token\n" +
- "Syntax error, insert \"}\" to complete ClassBody");
- node = getASTNode(unit, 0, 0);
- assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- assertFalse("A recovered node", isRecovered(methodDeclaration));
- assertFalse("A malformed node", isMalformed(methodDeclaration));
- assertFalse("A recovered node", isRecovered(methodDeclaration.getBody()));
- assertFalse("A malformed node", isMalformed(methodDeclaration.getBody()));
- node = getASTNode(unit, 0, 1);
- assertEquals("Not an initializer", ASTNode.INITIALIZER, node.getNodeType());
- Initializer initializer = (Initializer) node;
- assertTrue("Not a recovered node", isRecovered(initializer));
- assertTrue("Not a malformed node", isMalformed(initializer));
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /*
- * Ensures that 2 type bindings (one from .class file, the other from attache source) are "isEqualTo(...)".
- * (regression test for bug 130317 ASTParser with IClassFile as source creates type bindings that are not isEqualTo(..) binary bindings)
- */
- public void test0641() throws JavaScriptModelException {
- // Integer from attached source
- IClassFile classFile = getClassFile("Converter", getConverterJCLPath().toOSString(), "java.lang", "Integer.class");
- String source = classFile.getSource();
- MarkerInfo markerInfo = new MarkerInfo(source);
- markerInfo.astStarts = new int[] {source.indexOf("public")};
- markerInfo.astEnds = new int[] {source.lastIndexOf('}') + 1};
- ASTNode node = buildAST(markerInfo, classFile);
- IBinding bindingFromAttachedSource = ((TypeDeclaration) node).resolveBinding();
-
- IJavaScriptUnit workingCopy = null;
- try {
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- String contents =
- "public class X {\n" +
- " /*start*/Integer/*end*/ field;\n" +
- "}";
- IBinding[] bindings = resolveBindings(contents, workingCopy);
- assertTrue("2 type bindings should be equals", bindingFromAttachedSource.isEqualTo(bindings[0]));
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=129330
- */
- public void test0642() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "import java.awt.Point;\n" +
- "public class X {\n" +
- " public void foo(Point p, int[] a) {\n" +
- " p.x;\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false,
- true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 1, "Syntax error, insert \"AssignmentOperator Expression\" to complete Expression");
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
- assertTrue("Not recovered", isRecovered(node));
- final Expression expression = ((ExpressionStatement) node).getExpression();
- assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, expression.getNodeType());
- assertTrue("Not recovered", isRecovered(expression));
- checkSourceRange(expression, "p.x", contents);
- checkSourceRange(node, "p.x;", contents);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=129330
- */
- public void test0643() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "import java.awt.Point;\n" +
- "public class X {\n" +
- " public void foo(Point p, int[] a) {\n" +
- " a[0];\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false,
- true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 1, "Syntax error, insert \"AssignmentOperator Expression\" to complete Expression");
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
- assertTrue("Not recovered", isRecovered(node));
- final Expression expression = ((ExpressionStatement) node).getExpression();
- assertEquals("Not an array access", ASTNode.ARRAY_ACCESS, expression.getNodeType());
- assertTrue("Not recovered", isRecovered(expression));
- checkSourceRange(expression, "a[0]", contents);
- checkSourceRange(node, "a[0];", contents);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=129330
- */
- public void test0644() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " public void foo() {\n" +
- " int x =;\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false,
- true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 1, "Syntax error on token \"=\", VariableInitializer expected after this token");
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a vaviable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertNull("No initializer", expression);
- assertTrue("Not recovered", isRecovered(fragment));
- checkSourceRange(fragment, "x =", contents);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=135997
- */
- public void test0645() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " {\n" +
- " new Object();\n" +
- " Object.equ;\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false,
- true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(
- unit,
- 2,
- "Object.equ cannot be resolved\n" +
- "Syntax error, insert \"AssignmentOperator Expression\" to complete Expression");
- node = getASTNode(unit, 0, 0);
- assertEquals("Not a field declaration statement", ASTNode.INITIALIZER, node.getNodeType());
- Initializer initializer = (Initializer) node;
- checkSourceRange(
- initializer,
- "{\n" +
- " new Object();\n" +
- " Object.equ;\n" +
- " }",
- contents);
- Block block = initializer.getBody();
- checkSourceRange(
- block,
- "{\n" +
- " new Object();\n" +
- " Object.equ;\n" +
- " }",
- contents);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=136972
- */
- public void test0646() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " static {\n" +
- " class A\n" +
- " Object o = new Object(){\n" +
- " void test(){\n" +
- " }\n" +
- " };\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false,
- true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=141043
- */
- public void test0647() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " public void run(int i) {\n" +
- " }\n" +
- " public void foo() {\n" +
- " new Runnable() {\n" +
- " public void run() {\n" +
- " run(1); \n" +
- " }\n" +
- " };\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false,
- true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 1, "The method run() in the type new Runnable(){} is not applicable for the arguments (int)");
- node = getASTNode(unit, 0, 1, 0);
- assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
- Expression expression = ((ExpressionStatement) node).getExpression();
- ITypeBinding typeBinding = expression.resolveTypeBinding();
- IFunctionBinding[] methodBindings = typeBinding.getDeclaredMethods();
- assertEquals("Wrong size", 2, methodBindings.length);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=147877
- */
- public void test0648() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " public void foo(int[] a) {\n" +
- " int i = a[0];\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false,
- true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a vaviable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertNotNull("No initializer", expression);
- checkSourceRange(expression, "a[0]", contents);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=147877
- */
- public void test0649() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " public void foo(int[] a) {\n" +
- " int i = a[0\\u005D;\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false,
- true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a vaviable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertNotNull("No initializer", expression);
- checkSourceRange(expression, "a[0\\u005D", contents);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=147877
- */
- public void test0650() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " public void foo(int[] a) {\n" +
- " int[] i = new int[0];\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false,
- true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a vaviable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertNotNull("No initializer", expression);
- checkSourceRange(expression, "new int[0]", contents);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=147877
- */
- public void test0651() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " public void foo(int[] a) {\n" +
- " int[] i = new int[0\\u005D;\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false,
- true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a vaviable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- Expression expression = fragment.getInitializer();
- assertNotNull("No initializer", expression);
- checkSourceRange(expression, "new int[0\\u005D", contents);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=149126
- */
- public void _test0652() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "import java.nio.ByteBuffer;\n" +
- "import java.nio.CharBuffer;\n" +
- "import java.nio.charset.Charset;\n" +
- "import java.nio.charset.CharsetDecoder;\n" +
- "import java.nio.charset.CharsetEncoder;\n" +
- "import java.nio.charset.CoderResult;\n" +
- "public class TestCharset extends Charset {\n" +
- " public CharsetDecoder newDecoder() {\n" +
- " return new CharsetDecoder(this, 2.0, 2.0) {\n" +
- " CharsetDecoder(CharSet\n" +
- " protected CoderResult decodeLoop(ByteBuffer in,\n" +
- "CharBuffer out) {\n" +
- " return null;\n" +
- " }\n" +
- " };;\n" +
- " }\n" +
- " public CharsetEncoder newEncoder() {\n" +
- " return null;\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false,
- true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 1);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=150409
- * TODO (olivier) renable if the bindings are available
- */
- public void _test0653() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0653", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) result;
-
- ASTNode node = getASTNode(unit, 0, 2, 0);
- assertEquals("Not a method invocation", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
- ExpressionStatement statement = (ExpressionStatement) node;
- FunctionInvocation invocation = (FunctionInvocation) statement.getExpression();
- List arguments = invocation.arguments();
- assertEquals("Wrong size", 1, arguments.size());
- Expression argument = (Expression) arguments.get(0);
- assertEquals("Not a method invocation", ASTNode.FUNCTION_INVOCATION, argument.getNodeType());
- invocation = (FunctionInvocation) argument;
- Expression expression = invocation.getExpression();
- assertEquals("Not a method invocation", ASTNode.FIELD_ACCESS, expression.getNodeType());
- FieldAccess fieldAccess = (FieldAccess) expression;
- IVariableBinding variableBinding = fieldAccess.resolveFieldBinding();
- assertNotNull("No variable binding", variableBinding);
- }
-
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=148224
- */
- public void test0654() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " int i;\n" +
- " public void foo(int[] a) {\n" +
- " }\n" +
- " String s;\n" +
- " public String[][] bar() {\n" +
- " return null;\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false,
- true);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 0);
- node = getASTNode(unit, 0, 0);
- assertEquals("Not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType());
- FieldDeclaration declaration = (FieldDeclaration) node;
- Type type = declaration.getType();
- ITypeBinding typeBinding = type.resolveBinding();
- assertTrue("Not a primitive type", typeBinding.isPrimitive());
- assertEquals("Not int", "int", typeBinding.getName());
- try {
- typeBinding.createArrayType(-1);
- assertTrue("Should throw an exception", false);
- } catch(IllegalArgumentException exception) {
- // ignore
- }
- try {
- typeBinding.createArrayType(0);
- assertTrue("Should throw an exception", false);
- } catch(IllegalArgumentException exception) {
- // ignore
- }
- try {
- typeBinding.createArrayType(256);
- assertTrue("Should throw an exception", false);
- } catch(IllegalArgumentException exception) {
- // ignore
- }
- ITypeBinding binding = typeBinding.createArrayType(2);
- assertEquals("Wrong dimensions", 2, binding.getDimensions());
- assertTrue("Not an array type binding", binding.isArray());
- ITypeBinding componentType = binding.getComponentType();
- assertTrue("Not an array type binding", componentType.isArray());
- assertEquals("Wrong dimensions", 1, componentType.getDimensions());
- componentType = componentType.getComponentType();
- assertFalse("An array type binding", componentType.isArray());
- assertEquals("Wrong dimensions", 0, componentType.getDimensions());
-
- binding = typeBinding.createArrayType(1);
- node = getASTNode(unit, 0, 1);
- assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
- List parameters = methodDeclaration.parameters();
- assertEquals("Wrong size", 1, parameters.size());
- SingleVariableDeclaration parameter = (SingleVariableDeclaration) parameters.get(0);
- Type type2 = parameter.getType();
- ITypeBinding typeBinding2 = type2.resolveBinding();
- assertNotNull("No binding", typeBinding2);
- assertTrue("Not an array binding", typeBinding2.isArray());
- assertEquals("Wrong dimension", 1, typeBinding2.getDimensions());
- assertEquals("Wrong type", "int", typeBinding2.getElementType().getName());
- assertTrue("Should be equals", binding == typeBinding2);
-
- binding = typeBinding2.createArrayType(3);
- assertTrue("Not an array binding", binding.isArray());
- assertEquals("Wrong dimension", 4, binding.getDimensions());
-
- node = getASTNode(unit, 0, 2);
- assertEquals("Not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType());
- declaration = (FieldDeclaration) node;
- type = declaration.getType();
- typeBinding = type.resolveBinding();
- assertTrue("A primitive type", !typeBinding.isPrimitive());
- assertEquals("Not String", "String", typeBinding.getName());
-
- binding = typeBinding.createArrayType(1);
- node = getASTNode(unit, 0, 3);
- assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
- methodDeclaration = (FunctionDeclaration) node;
- type = methodDeclaration.getReturnType2();
- assertNotNull("No return type", type);
- typeBinding2 = type.resolveBinding();
- assertNotNull("No binding", typeBinding2);
- assertTrue("Not an array binding", typeBinding2.isArray());
- assertEquals("Wrong dimension", 2, typeBinding2.getDimensions());
- assertEquals("Wrong type", "String", typeBinding2.getElementType().getName());
- typeBinding2 = typeBinding2.getComponentType();
- assertTrue("Not an array binding", typeBinding2.isArray());
- assertEquals("Wrong dimension", 1, typeBinding2.getDimensions());
- assertTrue("Should be equals", binding == typeBinding2);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=157570
- */
- public void _test0655() {
- String src = "public static void m1()\n" +
- " {\n" +
- " int a;\n" +
- " int b;\n" +
- " }\n" +
- "\n" +
- " public static void m2()\n" +
- " {\n" +
- " int c;\n" +
- " int d;\n" +
- " }";
- char[] source = src.toCharArray();
- ASTParser parser = ASTParser.newParser(AST.JLS3);
- parser.setKind (ASTParser.K_STATEMENTS);
- parser.setStatementsRecovery(true);
- parser.setSource (source);
- ASTNode result = parser.createAST (null);
- assertNotNull("no result", result);
- assertEquals("Not a block", ASTNode.BLOCK, result.getNodeType());
- Block block = (Block) result;
- List statements = block.statements();
- for (Iterator iterator = statements.iterator(); iterator.hasNext(); ) {
- Statement statement = (Statement) iterator.next();
- assertTrue(isMalformed(statement));
- }
- }
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=157570
- */
- public void test0656() {
- String src = "public static void m1()\n" +
- " {\n" +
- " int a;\n" +
- " int b;\n" +
- " }\n" +
- "\n" +
- " public static void m2()\n" +
- " {\n" +
- " int c;\n" +
- " int d;\n" +
- " }";
- char[] source = src.toCharArray();
- ASTParser parser = ASTParser.newParser(AST.JLS3);
- parser.setKind (ASTParser.K_STATEMENTS);
- parser.setStatementsRecovery(false);
- parser.setSource (source);
- ASTNode result = parser.createAST (null);
- assertNotNull("no result", result);
- assertEquals("Not a block", ASTNode.BLOCK, result.getNodeType());
- Block block = (Block) result;
- List statements = block.statements();
- assertEquals("Should be empty", 0, statements.size());
- }
-
- // http://dev.eclipse.org/bugs/show_bug.cgi?id=160198
- public void test0657() throws JavaScriptModelException {
- IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0657", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- IJavaScriptUnit sourceUnit2 = getCompilationUnit("Converter" , "src", "test0657", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- class TestASTRequestor extends ASTRequestor {
- public ArrayList asts = new ArrayList();
- public void acceptAST(IJavaScriptUnit source, JavaScriptUnit compilationUnit) {
- this.asts.add(compilationUnit);
- }
- public void acceptBinding(String bindingKey, IBinding binding) {
- }
- }
- TestASTRequestor requestor = new TestASTRequestor();
- resolveASTs(
- new IJavaScriptUnit[] {sourceUnit, sourceUnit2},
- new String[0],
- requestor,
- getJavaProject("Converter"),
- sourceUnit.getOwner()
- );
- ArrayList arrayList = requestor.asts;
- assertEquals("Wrong size", 2, arrayList.size());
- int problemsCount = 0;
- for (int i = 0, max = arrayList.size(); i < max; i++) {
- Object current = arrayList.get(i);
- assertTrue("not a compilation unit", current instanceof JavaScriptUnit);
- JavaScriptUnit unit = (JavaScriptUnit) current;
- IProblem[] problems = unit.getProblems();
- problemsCount += problems.length;
- }
- assertEquals("wrong size", 1, problemsCount);
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=157570
- */
- public void test0658() {
- String src = "public static void m1()\n" +
- " {\n" +
- " int a;\n" +
- " int b;\n" +
- " }\n" +
- "\n" +
- " public static void m2()\n" +
- " {\n" +
- " int c;\n" +
- " int d;\n" +
- " }";
- char[] source = src.toCharArray();
- ASTParser parser = ASTParser.newParser(AST.JLS3);
- parser.setKind (ASTParser.K_STATEMENTS);
- parser.setStatementsRecovery(true);
- parser.setSource (source);
- ASTNode result = parser.createAST (null);
- assertNotNull("no result", result);
- assertEquals("Not a block", ASTNode.BLOCK, result.getNodeType());
- Block block = (Block) result;
- List statements = block.statements();
- assertEquals("Should be empty", 4, statements.size());
- assertTrue("Not recovered", isRecovered(block));
- ASTNode root = block.getRoot();
- assertNotNull("No root", root);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, root.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) root;
- String errors =
- "Syntax error on token(s), misplaced construct(s)\n" +
- "Syntax error, insert \";\" to complete BlockStatements\n" +
- "Syntax error on token(s), misplaced construct(s)\n" +
- "Syntax error, insert \";\" to complete Statement";
- assertProblemsSize(unit, 4, errors);
- }
-
- public void test0659() throws CoreException, JavaScriptModelException {
- IJavaScriptProject javaProject = createJavaProject("P659", new String[] { "src" }, new String[0]);
- try {
- ASTParser parser = ASTParser.newParser(AST.JLS3);
- parser.setKind(ASTParser.K_COMPILATION_UNIT);
- parser.setStatementsRecovery(true);
- String source ="package java.lang;\n" +
- "public class Object {\n" +
- " public String toString() {\n" +
- " return \"\";\n" +
- " }\n" +
- "}";
- parser.setSource(source.toCharArray());
- parser.setProject(javaProject);
- parser.setResolveBindings(true);
- parser.setUnitName("Object.js");
- ASTNode result = parser.createAST (null);
- assertNotNull("no result", result);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) result;
- ASTNode node = getASTNode(unit, 0, 0);
- assertNotNull("No node", node);
- assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
- FunctionDeclaration declaration = (FunctionDeclaration) node;
- Block block = declaration.getBody();
- assertNotNull("no block", block);
- List statements = block.statements();
- assertEquals("Wrong size", 1, statements.size());
- ReturnStatement returnStatement = (ReturnStatement) statements.get(0);
- Expression expression = returnStatement.getExpression();
- assertNotNull("No expression", expression);
- ITypeBinding binding = expression.resolveTypeBinding();
- assertNull("No binding", binding);
- } finally {
- deleteProject("P659");
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=144858
- * TODO (frederic) check that keys are different (PR 149590)
- */
- public void test0660() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " void foo() {\n" +
- " int x = 0;\n" +
- " String x = \"\"; //$NON-NLS-1$\n" +
- " x.toString();\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 1, "Duplicate local variable x");
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- IVariableBinding variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "x", variableBinding.getName());
- // (PR 149590)
- // String key = variableBinding.getKey();
-
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- statement = (VariableDeclarationStatement) node;
- fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- fragment = (VariableDeclarationFragment) fragments.get(0);
- variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "x", variableBinding.getName());
- // (PR 149590)
- // String key2 = variableBinding.getKey();
- //assertFalse("Keys should not be equals", key2.equals(key));
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=144858
- * TODO (frederic) check that keys are different (PR 149590)
- */
- public void test0661() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " public static void main(String[] args) {\n" +
- " int x = 2;\n" +
- " try {\n" +
- "\n" +
- " } catch(NullPointerException x) {\n" +
- " } catch(Exception e) {\n" +
- " }\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- assertProblemsSize(unit, 1, "Duplicate parameter x");
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- IVariableBinding variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "x", variableBinding.getName());
- // (PR 149590)
- // String key = variableBinding.getKey();
-
- node = getASTNode(unit, 0, 0, 1);
- assertEquals("Not a try statement", ASTNode.TRY_STATEMENT, node.getNodeType());
- TryStatement statement2 = (TryStatement) node;
- List catchClauses = statement2.catchClauses();
- assertEquals("Wrong size", 2, catchClauses.size());
- CatchClause catchClause = (CatchClause) catchClauses.get(0);
- SingleVariableDeclaration variableDeclaration = catchClause.getException();
- variableBinding = variableDeclaration.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "x", variableBinding.getName());
- // (PR 149590)
- // String key2 = variableBinding.getKey();
- //assertFalse("Keys should not be equals", key2.equals(key));
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=144858
- * TODO (frederic) check that keys are different (PR 149590)
- */
- public void test0662() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " public static void main(String[] args) {\n" +
- " int x = x = 0;\n" +
- " if (true) {\n" +
- " int x = x = 1;\n" +
- " }\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- String expectedLog =
- "The assignment to variable x has no effect\n" +
- "Duplicate local variable x\n" +
- "The assignment to variable x has no effect";
- assertProblemsSize(unit, 3, expectedLog);
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
- VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
- List fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- IVariableBinding variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "x", variableBinding.getName());
- // (PR 149590)
- // String key = variableBinding.getKey();
-
- node = getASTNode(unit, 0, 0, 1);
- assertEquals("Not an if statement", ASTNode.IF_STATEMENT, node.getNodeType());
- IfStatement ifStatement = (IfStatement) node;
- Block block = (Block) ifStatement.getThenStatement();
- List statements = block.statements();
- assertEquals("Wrong size", 1, statements.size());
- Statement statement2 = (Statement) statements.get(0);
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, statement2.getNodeType());
- statement = (VariableDeclarationStatement) statement2;
- fragments = statement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- fragment = (VariableDeclarationFragment) fragments.get(0);
- variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "x", variableBinding.getName());
-
- // (PR 149590)
- // String key2 = variableBinding.getKey();
- //assertFalse("Keys should not be equals", key2.equals(key));
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=144858
- * TODO (frederic) check that keys are different (PR 149590)
- */
- public void test0663() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " public static void main(String[] args) {\n" +
- " for (int i = 0; i < 10; i++) {\n" +
- " for (int i = 0; i < 5; i++) {\n" +
- " // do something\n" +
- " }\n" +
- " }\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- String expectedLog = "Duplicate local variable i";
- assertProblemsSize(unit, 1, expectedLog);
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a for statement", ASTNode.FOR_STATEMENT, node.getNodeType());
- ForStatement statement = (ForStatement) node;
- List initializers = statement.initializers();
- assertEquals("Wrong size", 1, initializers.size());
- Expression expression = (Expression) initializers.get(0);
- assertEquals("Not a variable declaration expression", ASTNode.VARIABLE_DECLARATION_EXPRESSION, expression.getNodeType());
- VariableDeclarationExpression expression2 = (VariableDeclarationExpression) expression;
- List fragments = expression2.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- IVariableBinding variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "i", variableBinding.getName());
- // (PR 149590)
- // String key = variableBinding.getKey();
-
- Block block = (Block) statement.getBody();
- List statements = block.statements();
- assertEquals("Wrong size", 1, statements.size());
- Statement statement2 = (Statement) statements.get(0);
- assertEquals("Not a for statement", ASTNode.FOR_STATEMENT, statement2.getNodeType());
- statement = (ForStatement) statement2;
- initializers = statement.initializers();
- assertEquals("Wrong size", 1, initializers.size());
- expression = (Expression) initializers.get(0);
- assertEquals("Not a variable declaration expression", ASTNode.VARIABLE_DECLARATION_EXPRESSION, expression.getNodeType());
- expression2 = (VariableDeclarationExpression) expression;
- fragments = expression2.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- fragment = (VariableDeclarationFragment) fragments.get(0);
- variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "i", variableBinding.getName());
-
- // (PR 149590)
- // String key2 = variableBinding.getKey();
- //assertFalse("Keys should not be equals", key2.equals(key));
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=165662
- */
- public void test0664() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " void foo() {\n" +
- " class Local {\n" +
- " void foo() {}\n" +
- " }\n" +
- " {\n" +
- " class Local {\n" +
- " Local(int i) {\n" +
- " this.init(i);\n" +
- " }\n" +
- " void init(int i) {}\n" +
- " }\n" +
- " Local l = new Local(0);\n" +
- " }\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- String expectedLog = "Duplicate nested type Local";
- assertProblemsSize(unit, 1, expectedLog);
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a type declaration statement", ASTNode.TYPE_DECLARATION_STATEMENT, node.getNodeType());
- TypeDeclarationStatement statement = (TypeDeclarationStatement) node;
- ITypeBinding typeBinding = statement.resolveBinding();
- assertNotNull("No binding", typeBinding);
- String key = typeBinding.getKey();
- assertNotNull("No key", key);
-
- node = getASTNode(unit, 0, 0, 1);
- assertEquals("Not a block", ASTNode.BLOCK, node.getNodeType());
- Block block = (Block) node;
- List statements = block.statements();
- assertEquals("wrong size", 2, statements.size());
- Statement statement2 = (Statement) statements.get(0);
- assertEquals("Not a type declaration statement", ASTNode.TYPE_DECLARATION_STATEMENT, statement2.getNodeType());
- statement = (TypeDeclarationStatement) statement2;
- typeBinding = statement.resolveBinding();
- assertNotNull("No binding", typeBinding);
- String key2 = typeBinding.getKey();
- assertNotNull("No key2", key2);
- assertFalse("Keys should not be equals", key.equals(key2));
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-
- /**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=165662
- */
- public void test0665() throws JavaScriptModelException {
- IJavaScriptUnit workingCopy = null;
- try {
- String contents =
- "public class X {\n" +
- " void foo() {\n" +
- " class Local {\n" +
- " void foo() {\n" +
- " }\n" +
- " }\n" +
- " {\n" +
- " class Local {\n" +
- " Local(int i) {\n" +
- " this.init(i);\n" +
- " this.bar();\n" +
- " }\n" +
- " void init(int i) {}\n" +
- " void bar() {\n" +
- " }\n" +
- " }\n" +
- " Local l = new Local(0);\n" +
- " }\n" +
- " Local l = new Local();\n" +
- " l.foo();\n" +
- " }\n" +
- "}";
- workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
- ASTNode node = buildAST(
- contents,
- workingCopy,
- false);
- assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
- JavaScriptUnit unit = (JavaScriptUnit) node;
- String expectedLog = "Duplicate nested type Local";
- assertProblemsSize(unit, 1, expectedLog);
- node = getASTNode(unit, 0, 0, 0);
- assertEquals("Not a type declaration statement", ASTNode.TYPE_DECLARATION_STATEMENT, node.getNodeType());
- TypeDeclarationStatement statement = (TypeDeclarationStatement) node;
- ITypeBinding typeBinding = statement.resolveBinding();
- assertNotNull("No binding", typeBinding);
- String key = typeBinding.getKey();
- assertNotNull("No key", key);
-
- node = getASTNode(unit, 0, 0, 1);
- assertEquals("Not a block", ASTNode.BLOCK, node.getNodeType());
- Block block = (Block) node;
- List statements = block.statements();
- assertEquals("wrong size", 2, statements.size());
- Statement statement2 = (Statement) statements.get(0);
- assertEquals("Not a type declaration statement", ASTNode.TYPE_DECLARATION_STATEMENT, statement2.getNodeType());
- statement = (TypeDeclarationStatement) statement2;
- typeBinding = statement.resolveBinding();
- assertNotNull("No binding", typeBinding);
- String key2 = typeBinding.getKey();
- assertNotNull("No key2", key2);
- assertFalse("Keys should not be equals", key.equals(key2));
-
- Statement statement3 = (Statement) statements.get(1);
- assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, statement3.getNodeType());
- VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) statement3;
- List fragments = variableDeclarationStatement.fragments();
- assertEquals("Wrong size", 1, fragments.size());
- VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
- IVariableBinding variableBinding = fragment.resolveBinding();
- assertNotNull("No binding", variableBinding);
- assertEquals("Wrong name", "l", variableBinding.getName());
- Expression expression = fragment.getInitializer();
- ITypeBinding typeBinding2 = expression.resolveTypeBinding();
- assertNotNull("No type binding2", typeBinding2);
-
- AbstractTypeDeclaration declaration = statement.getDeclaration();
- List bodyDeclarations = declaration.bodyDeclarations();
- assertEquals("Wrong size", 3, bodyDeclarations.size());
- BodyDeclaration declaration2 = (BodyDeclaration) bodyDeclarations.get(0);
- assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, declaration2.getNodeType());
- FunctionDeclaration methodDeclaration = (FunctionDeclaration) declaration2;
- assertTrue("not a constructor", methodDeclaration.isConstructor());
- block = methodDeclaration.getBody();
- statements = block.statements();
- assertEquals("Wrong size", 2, statements.size());
- statement3 = (Statement) statements.get(1);
- assertEquals("Not a expression statement", ASTNode.EXPRESSION_STATEMENT, statement3.getNodeType());
- expression = ((ExpressionStatement) statement3).getExpression();
- assertEquals("Not a method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType());
- FunctionInvocation invocation = (FunctionInvocation) expression;
- IFunctionBinding methodBinding = invocation.resolveMethodBinding();
- assertNotNull(methodBinding);
- } finally {
- if (workingCopy != null)
- workingCopy.discardWorkingCopy();
- }
- }
-}

Back to the top