[230291] remove dead code
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverter15Test.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverter15Test.java index 3c8c186..df60819 100644 --- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverter15Test.java +++ b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverter15Test.java
@@ -12,7 +12,6 @@ package org.eclipse.wst.jsdt.core.tests.dom; import java.io.IOException; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -23,14 +22,68 @@ import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.wst.jsdt.core.BindingKey; -import org.eclipse.wst.jsdt.core.IJavaScriptUnit; 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.IType; import org.eclipse.wst.jsdt.core.JavaScriptCore; import org.eclipse.wst.jsdt.core.JavaScriptModelException; import org.eclipse.wst.jsdt.core.Signature; -import org.eclipse.wst.jsdt.core.dom.*; +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.ASTVisitor; +import org.eclipse.wst.jsdt.core.dom.AbstractTypeDeclaration; +import org.eclipse.wst.jsdt.core.dom.ArrayType; +import org.eclipse.wst.jsdt.core.dom.AssertStatement; +import org.eclipse.wst.jsdt.core.dom.Block; +import org.eclipse.wst.jsdt.core.dom.BodyDeclaration; +import org.eclipse.wst.jsdt.core.dom.CastExpression; +import org.eclipse.wst.jsdt.core.dom.ClassInstanceCreation; +import org.eclipse.wst.jsdt.core.dom.ConstructorInvocation; +import org.eclipse.wst.jsdt.core.dom.EnhancedForStatement; +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.FunctionDeclaration; +import org.eclipse.wst.jsdt.core.dom.FunctionInvocation; +import org.eclipse.wst.jsdt.core.dom.IBinding; +import org.eclipse.wst.jsdt.core.dom.IExtendedModifier; +import org.eclipse.wst.jsdt.core.dom.IFunctionBinding; +import org.eclipse.wst.jsdt.core.dom.IPackageBinding; +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.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.NumberLiteral; +import org.eclipse.wst.jsdt.core.dom.ParameterizedType; +import org.eclipse.wst.jsdt.core.dom.QualifiedName; +import org.eclipse.wst.jsdt.core.dom.QualifiedType; +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.SuperConstructorInvocation; +import org.eclipse.wst.jsdt.core.dom.SuperFieldAccess; +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.TypeLiteral; +import org.eclipse.wst.jsdt.core.dom.TypeParameter; +import org.eclipse.wst.jsdt.core.dom.VariableDeclarationFragment; +import org.eclipse.wst.jsdt.core.dom.VariableDeclarationStatement; +import org.eclipse.wst.jsdt.core.dom.WildcardType; import org.eclipse.wst.jsdt.core.tests.util.Util; public class ASTConverter15Test extends ConverterTestSetup { @@ -128,165 +181,6 @@ assertProblemsSize(compilationUnit, 0); } - public void test0003() throws JavaScriptModelException { - IJavaScriptUnit sourceUnit = getCompilationUnit("Converter15" , "src", "test0003", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - char[] source = sourceUnit.getSource().toCharArray(); - ASTNode result = runJLS3Conversion(sourceUnit, true, true); - assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); - JavaScriptUnit compilationUnit = (JavaScriptUnit) result; - assertProblemsSize(compilationUnit, 0); - List types = compilationUnit.types(); - assertEquals("Wrong number of types", 3, types.size()); - AbstractTypeDeclaration typeDeclaration = (AbstractTypeDeclaration) types.get(2); - assertEquals("wrong type", ASTNode.TYPE_DECLARATION, typeDeclaration.getNodeType()); - TypeDeclaration typeDeclaration2 = (TypeDeclaration) typeDeclaration; - List modifiers = typeDeclaration2.modifiers(); - assertEquals("Wrong number of modifiers", 2, modifiers.size()); - ASTNode modifier = (ASTNode) modifiers.get(0); - checkSourceRange(modifier, "@Author(@Name(first=\"Joe\", last=\"Hacker\"))", source); - assertEquals("wrong type", ASTNode.SINGLE_MEMBER_ANNOTATION, modifier.getNodeType()); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) modifier; - checkSourceRange(annotation.getTypeName(), "Author", source); - Expression value = annotation.getValue(); - assertEquals("wrong type", ASTNode.NORMAL_ANNOTATION, value.getNodeType()); - NormalAnnotation normalAnnotation = (NormalAnnotation) value; - checkSourceRange(normalAnnotation.getTypeName(), "Name", source); - List values = normalAnnotation.values(); - assertEquals("wrong size", 2, values.size()); - MemberValuePair memberValuePair = (MemberValuePair) values.get(0); - checkSourceRange(memberValuePair, "first=\"Joe\"", source); - checkSourceRange(memberValuePair.getName(), "first", source); - checkSourceRange(memberValuePair.getValue(), "\"Joe\"", source); - memberValuePair = (MemberValuePair) values.get(1); - checkSourceRange(memberValuePair, "last=\"Hacker\"", source); - checkSourceRange(memberValuePair.getName(), "last", source); - checkSourceRange(memberValuePair.getValue(), "\"Hacker\"", source); - modifier = (ASTNode) modifiers.get(1); - checkSourceRange(modifier, "public", source); - } - - public void test0004() throws JavaScriptModelException { - IJavaScriptUnit sourceUnit = getCompilationUnit("Converter15" , "src", "test0004", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - char[] source = sourceUnit.getSource().toCharArray(); - ASTNode result = runJLS3Conversion(sourceUnit, true, true); - assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); - JavaScriptUnit compilationUnit = (JavaScriptUnit) result; - assertProblemsSize(compilationUnit, 0); - List types = compilationUnit.types(); - assertEquals("Wrong number of types", 3, types.size()); - AbstractTypeDeclaration typeDeclaration = (AbstractTypeDeclaration) types.get(2); - assertEquals("wrong type", ASTNode.TYPE_DECLARATION, typeDeclaration.getNodeType()); - TypeDeclaration typeDeclaration2 = (TypeDeclaration) typeDeclaration; - List modifiers = typeDeclaration2.modifiers(); - assertEquals("Wrong number of modifiers", 2, modifiers.size()); - ASTNode modifier = (ASTNode) modifiers.get(1); - checkSourceRange(modifier, "@Author(@Name(first=\"Joe\", last=\"Hacker\"))", source); - assertEquals("wrong type", ASTNode.SINGLE_MEMBER_ANNOTATION, modifier.getNodeType()); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) modifier; - checkSourceRange(annotation.getTypeName(), "Author", source); - Expression value = annotation.getValue(); - assertEquals("wrong type", ASTNode.NORMAL_ANNOTATION, value.getNodeType()); - NormalAnnotation normalAnnotation = (NormalAnnotation) value; - checkSourceRange(normalAnnotation.getTypeName(), "Name", source); - List values = normalAnnotation.values(); - assertEquals("wrong size", 2, values.size()); - MemberValuePair memberValuePair = (MemberValuePair) values.get(0); - checkSourceRange(memberValuePair, "first=\"Joe\"", source); - checkSourceRange(memberValuePair.getName(), "first", source); - checkSourceRange(memberValuePair.getValue(), "\"Joe\"", source); - memberValuePair = (MemberValuePair) values.get(1); - checkSourceRange(memberValuePair, "last=\"Hacker\"", source); - checkSourceRange(memberValuePair.getName(), "last", source); - checkSourceRange(memberValuePair.getValue(), "\"Hacker\"", source); - modifier = (ASTNode) modifiers.get(0); - checkSourceRange(modifier, "public", source); - } - - public void test0005() throws JavaScriptModelException { - IJavaScriptUnit sourceUnit = getCompilationUnit("Converter15" , "src", "test0005", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - char[] source = sourceUnit.getSource().toCharArray(); - ASTNode result = runJLS3Conversion(sourceUnit, true, true); - assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); - JavaScriptUnit compilationUnit = (JavaScriptUnit) result; - assertProblemsSize(compilationUnit, 0); - List types = compilationUnit.types(); - assertEquals("Wrong number of types", 4, types.size()); - AbstractTypeDeclaration typeDeclaration = (AbstractTypeDeclaration) types.get(3); - assertEquals("wrong type", ASTNode.TYPE_DECLARATION, typeDeclaration.getNodeType()); - TypeDeclaration typeDeclaration2 = (TypeDeclaration) typeDeclaration; - List modifiers = typeDeclaration2.modifiers(); - assertEquals("Wrong number of modifiers", 3, modifiers.size()); - ASTNode modifier = (ASTNode) modifiers.get(0); - checkSourceRange(modifier, "@Retention", source); - assertEquals("wrong type", ASTNode.MARKER_ANNOTATION, modifier.getNodeType()); - MarkerAnnotation markerAnnotation = (MarkerAnnotation) modifier; - checkSourceRange(markerAnnotation.getTypeName(), "Retention", source); - modifier = (ASTNode) modifiers.get(2); - checkSourceRange(modifier, "@Author(@Name(first=\"Joe\", last=\"Hacker\", age=32))", source); - assertEquals("wrong type", ASTNode.SINGLE_MEMBER_ANNOTATION, modifier.getNodeType()); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) modifier; - checkSourceRange(annotation.getTypeName(), "Author", source); - Expression value = annotation.getValue(); - assertEquals("wrong type", ASTNode.NORMAL_ANNOTATION, value.getNodeType()); - NormalAnnotation normalAnnotation = (NormalAnnotation) value; - checkSourceRange(normalAnnotation.getTypeName(), "Name", source); - List values = normalAnnotation.values(); - assertEquals("wrong size", 3, values.size()); - MemberValuePair memberValuePair = (MemberValuePair) values.get(0); - checkSourceRange(memberValuePair, "first=\"Joe\"", source); - checkSourceRange(memberValuePair.getName(), "first", source); - checkSourceRange(memberValuePair.getValue(), "\"Joe\"", source); - memberValuePair = (MemberValuePair) values.get(1); - checkSourceRange(memberValuePair, "last=\"Hacker\"", source); - checkSourceRange(memberValuePair.getName(), "last", source); - checkSourceRange(memberValuePair.getValue(), "\"Hacker\"", source); - memberValuePair = (MemberValuePair) values.get(2); - checkSourceRange(memberValuePair, "age=32", source); - checkSourceRange(memberValuePair.getName(), "age", source); - checkSourceRange(memberValuePair.getValue(), "32", source); - modifier = (ASTNode) modifiers.get(1); - checkSourceRange(modifier, "public", source); - - typeDeclaration = (AbstractTypeDeclaration) types.get(0); - assertEquals("wrong type", ASTNode.ANNOTATION_TYPE_DECLARATION, typeDeclaration.getNodeType()); - AnnotationTypeDeclaration annotationTypeDeclaration = (AnnotationTypeDeclaration) typeDeclaration; - List bodyDeclarations = annotationTypeDeclaration.bodyDeclarations(); - assertEquals("Wrong size", 3, bodyDeclarations.size()); - BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0); - assertEquals("wrong type", ASTNode.ANNOTATION_TYPE_MEMBER_DECLARATION, bodyDeclaration.getNodeType()); - AnnotationTypeMemberDeclaration annotationTypeMemberDeclaration = (AnnotationTypeMemberDeclaration) bodyDeclaration; - IFunctionBinding methodBinding = annotationTypeMemberDeclaration.resolveBinding(); - assertNotNull("No binding", methodBinding); - checkSourceRange(annotationTypeMemberDeclaration, "String first() default \"Joe\";", source); - Expression expression = annotationTypeMemberDeclaration.getDefault(); - checkSourceRange(expression, "\"Joe\"", source); - bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(2); - assertEquals("wrong type", ASTNode.ANNOTATION_TYPE_MEMBER_DECLARATION, bodyDeclaration.getNodeType()); - annotationTypeMemberDeclaration = (AnnotationTypeMemberDeclaration) bodyDeclaration; - checkSourceRange(annotationTypeMemberDeclaration, "int age();", source); - expression = annotationTypeMemberDeclaration.getDefault(); - assertNull("Got a default", expression); - } - - public void test0006() throws JavaScriptModelException { - IJavaScriptUnit sourceUnit = getCompilationUnit("Converter15" , "src", "test0006", "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); - assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); - JavaScriptUnit compilationUnit = (JavaScriptUnit) result; - final String expectedOutput = "Package annotations must be in file package-info.js"; - assertProblemsSize(compilationUnit, 1, expectedOutput); - PackageDeclaration packageDeclaration = compilationUnit.getPackage(); - assertNotNull("No package declaration", packageDeclaration); - checkSourceRange(packageDeclaration, "@Retention package test0006;", source); - List annotations = packageDeclaration.annotations(); - assertEquals("Wrong size", 1, annotations.size()); - Annotation annotation = (Annotation) annotations.get(0); - checkSourceRange(annotation, "@Retention", source); - assertEquals("Not a marker annotation", annotation.getNodeType(), ASTNode.MARKER_ANNOTATION); - MarkerAnnotation markerAnnotation = (MarkerAnnotation) annotation; - checkSourceRange(markerAnnotation.getTypeName(), "Retention", source); - } public void test0007() throws JavaScriptModelException { IJavaScriptUnit sourceUnit = getCompilationUnit("Converter15" , "src", "test0007", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ @@ -821,220 +715,6 @@ checkSourceRange(type, "E", source); } - public void test0026() throws JavaScriptModelException { - IJavaScriptUnit sourceUnit = getCompilationUnit("Converter15" , "src", "test0026", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runJLS3Conversion(sourceUnit, true, true); - assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); - JavaScriptUnit compilationUnit = (JavaScriptUnit) result; - assertProblemsSize(compilationUnit, 0); - char[] source = sourceUnit.getSource().toCharArray(); - ASTNode node = getASTNode(compilationUnit, 0); - assertEquals("Not an enum declaration", ASTNode.ENUM_DECLARATION, node.getNodeType()); - EnumDeclaration enumDeclaration = (EnumDeclaration) node; - ITypeBinding typeBinding2 = enumDeclaration.resolveBinding(); - assertNotNull("No binding", typeBinding2); - List modifiers = enumDeclaration.modifiers(); - assertEquals("Wrong number of modifiers", 1, modifiers.size()); - IExtendedModifier extendedModifier = (IExtendedModifier) modifiers.get(0); - assertTrue("Not a modifier", extendedModifier instanceof Modifier); - Modifier modifier = (Modifier) extendedModifier; - checkSourceRange(modifier, "public", source); - assertEquals("wrong name", "X", enumDeclaration.getName().getIdentifier()); - List enumConstants = enumDeclaration.enumConstants(); - assertEquals("wrong size", 4, enumConstants.size()); - List bodyDeclarations = enumDeclaration.bodyDeclarations(); - assertEquals("wrong size", 2, bodyDeclarations.size()); - EnumConstantDeclaration enumConstantDeclaration = (EnumConstantDeclaration) enumConstants.get(0); - IFunctionBinding methodBinding = enumConstantDeclaration.resolveConstructorBinding(); - assertNotNull("No binding", methodBinding); - assertTrue("Not a constructor", methodBinding.isConstructor()); - checkSourceRange(enumConstantDeclaration.getName(), "PLUS", source); - checkSourceRange(enumConstantDeclaration, "PLUS {\n" + - " @Override\n" + - " double eval(double x, double y) { return x + y; }\n" + - " }", source); - assertEquals("wrong size", 0, enumConstantDeclaration.arguments().size()); - AnonymousClassDeclaration anonymousClassDeclaration = enumConstantDeclaration.getAnonymousClassDeclaration(); - assertNotNull("No anonymous class", anonymousClassDeclaration); - checkSourceRange(anonymousClassDeclaration, "{\n" + - " @Override\n" + - " double eval(double x, double y) { return x + y; }\n" + - " }", source); - ITypeBinding typeBinding = anonymousClassDeclaration.resolveBinding(); - assertNotNull("No binding", typeBinding); - assertTrue("Not a enum type", typeBinding.isEnum()); - 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; - checkSourceRange(methodDeclaration.getName(), "eval", source); - checkSourceRange(methodDeclaration, "@Override\n double eval(double x, double y) { return x + y; }", source); - assertEquals("wrong size", 0, enumConstantDeclaration.arguments().size()); - - enumConstantDeclaration = (EnumConstantDeclaration) enumConstants.get(1); - methodBinding = enumConstantDeclaration.resolveConstructorBinding(); - assertNotNull("No binding", methodBinding); - assertTrue("Not a constructor", methodBinding.isConstructor()); - checkSourceRange(enumConstantDeclaration.getName(), "MINUS", source); - checkSourceRange(enumConstantDeclaration, "MINUS {\n" + - " @Override\n" + - " double eval(double x, double y) { return x - y; }\n" + - " }", source); - anonymousClassDeclaration = enumConstantDeclaration.getAnonymousClassDeclaration(); - typeBinding = anonymousClassDeclaration.resolveBinding(); - assertNotNull("No binding", typeBinding); - assertTrue("Not a enum type", typeBinding.isEnum()); - assertNotNull("No anonymous class", anonymousClassDeclaration); - checkSourceRange(anonymousClassDeclaration, "{\n" + - " @Override\n" + - " double eval(double x, double y) { return x - y; }\n" + - " }", source); - 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; - checkSourceRange(methodDeclaration.getName(), "eval", source); - checkSourceRange(methodDeclaration, "@Override\n double eval(double x, double y) { return x - y; }", source); - assertEquals("wrong size", 0, enumConstantDeclaration.arguments().size()); - - enumConstantDeclaration = (EnumConstantDeclaration) enumConstants.get(2); - methodBinding = enumConstantDeclaration.resolveConstructorBinding(); - assertNotNull("No binding", methodBinding); - assertTrue("Not a constructor", methodBinding.isConstructor()); - checkSourceRange(enumConstantDeclaration.getName(), "TIMES", source); - checkSourceRange(enumConstantDeclaration, "TIMES {\n" + - " @Override\n" + - " double eval(double x, double y) { return x * y; }\n" + - " }", source); - anonymousClassDeclaration = enumConstantDeclaration.getAnonymousClassDeclaration(); - assertNotNull("No anonymous class", anonymousClassDeclaration); - checkSourceRange(anonymousClassDeclaration, "{\n" + - " @Override\n" + - " double eval(double x, double y) { return x * y; }\n" + - " }", source); - typeBinding = anonymousClassDeclaration.resolveBinding(); - assertNotNull("No binding", typeBinding); - assertTrue("Not a enum type", typeBinding.isEnum()); - 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; - checkSourceRange(methodDeclaration.getName(), "eval", source); - checkSourceRange(methodDeclaration, "@Override\n double eval(double x, double y) { return x * y; }", source); - assertEquals("wrong size", 0, enumConstantDeclaration.arguments().size()); - - enumConstantDeclaration = (EnumConstantDeclaration) enumConstants.get(3); - methodBinding = enumConstantDeclaration.resolveConstructorBinding(); - assertNotNull("No binding", methodBinding); - assertTrue("Not a constructor", methodBinding.isConstructor()); - checkSourceRange(enumConstantDeclaration.getName(), "DIVIDED_BY", source); - checkSourceRange(enumConstantDeclaration, "DIVIDED_BY {\n" + - " @Override\n" + - " double eval(double x, double y) { return x / y; }\n" + - " }", source); - anonymousClassDeclaration = enumConstantDeclaration.getAnonymousClassDeclaration(); - assertNotNull("No anonymous class", anonymousClassDeclaration); - checkSourceRange(anonymousClassDeclaration, "{\n" + - " @Override\n" + - " double eval(double x, double y) { return x / y; }\n" + - " }", source); - typeBinding = anonymousClassDeclaration.resolveBinding(); - assertNotNull("No binding", typeBinding); - assertTrue("Not a enum type", typeBinding.isEnum()); - 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; - checkSourceRange(methodDeclaration.getName(), "eval", source); - checkSourceRange(methodDeclaration, "@Override\n double eval(double x, double y) { return x / y; }", source); - assertEquals("wrong size", 0, enumConstantDeclaration.arguments().size()); - } - - public void test0027() throws JavaScriptModelException { - IJavaScriptUnit sourceUnit = getCompilationUnit("Converter15" , "src", "test0027", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runJLS3Conversion(sourceUnit, true, true); - assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); - JavaScriptUnit compilationUnit = (JavaScriptUnit) result; - assertProblemsSize(compilationUnit, 0); - ASTNode node = getASTNode(compilationUnit, 0); - char[] source = sourceUnit.getSource().toCharArray(); - assertEquals("Not an enum declaration", ASTNode.ENUM_DECLARATION, node.getNodeType()); - EnumDeclaration enumDeclaration = (EnumDeclaration) node; - List modifiers = enumDeclaration.modifiers(); - assertEquals("Wrong number of modifiers", 1, modifiers.size()); - IExtendedModifier extendedModifier = (IExtendedModifier) modifiers.get(0); - assertTrue("Not a modifier", extendedModifier instanceof Modifier); - Modifier modifier = (Modifier) extendedModifier; - checkSourceRange(modifier, "public", source); - assertEquals("wrong name", "X", enumDeclaration.getName().getIdentifier()); - List enumConstants = enumDeclaration.enumConstants(); - assertEquals("wrong size", 4, enumConstants.size()); - EnumConstantDeclaration enumConstantDeclaration = (EnumConstantDeclaration) enumConstants.get(0); - IFunctionBinding methodBinding = enumConstantDeclaration.resolveConstructorBinding(); - assertNotNull("No binding", methodBinding); - assertTrue("Not a constructor", methodBinding.isConstructor()); - checkSourceRange(enumConstantDeclaration.getName(), "PENNY", source); - checkSourceRange(enumConstantDeclaration, "PENNY(1)", source); - List arguments = enumConstantDeclaration.arguments(); - assertEquals("wrong size", 1, arguments.size()); - Expression argument = (Expression) arguments.get(0); - checkSourceRange(argument, "1", source); - assertEquals("not an number literal", ASTNode.NUMBER_LITERAL, argument.getNodeType()); - IVariableBinding binding = enumConstantDeclaration.resolveVariable(); - assertNotNull("No binding", binding); - assertEquals("Wrong name", "PENNY", binding.getName()); - ASTNode node2 = compilationUnit.findDeclaringNode(binding); - assertTrue("Different node", node2 == enumConstantDeclaration); - - enumConstantDeclaration = (EnumConstantDeclaration) enumConstants.get(1); - methodBinding = enumConstantDeclaration.resolveConstructorBinding(); - assertNotNull("No binding", methodBinding); - assertTrue("Not a constructor", methodBinding.isConstructor()); - checkSourceRange(enumConstantDeclaration.getName(), "NICKEL", source); - checkSourceRange(enumConstantDeclaration, "NICKEL(5)", source); - arguments = enumConstantDeclaration.arguments(); - assertEquals("wrong size", 1, arguments.size()); - argument = (Expression) arguments.get(0); - checkSourceRange(argument, "5", source); - assertEquals("not an number literal", ASTNode.NUMBER_LITERAL, argument.getNodeType()); - binding = enumConstantDeclaration.resolveVariable(); - assertNotNull("No binding", binding); - assertEquals("Wrong name", "NICKEL", binding.getName()); - - enumConstantDeclaration = (EnumConstantDeclaration) enumConstants.get(2); - methodBinding = enumConstantDeclaration.resolveConstructorBinding(); - assertNotNull("No binding", methodBinding); - assertTrue("Not a constructor", methodBinding.isConstructor()); - checkSourceRange(enumConstantDeclaration.getName(), "DIME", source); - checkSourceRange(enumConstantDeclaration, "DIME(10)", source); - arguments = enumConstantDeclaration.arguments(); - assertEquals("wrong size", 1, arguments.size()); - argument = (Expression) arguments.get(0); - checkSourceRange(argument, "10", source); - assertEquals("not an number literal", ASTNode.NUMBER_LITERAL, argument.getNodeType()); - binding = enumConstantDeclaration.resolveVariable(); - assertNotNull("No binding", binding); - assertEquals("Wrong name", "DIME", binding.getName()); - - - enumConstantDeclaration = (EnumConstantDeclaration) enumConstants.get(3); - methodBinding = enumConstantDeclaration.resolveConstructorBinding(); - assertNotNull("No binding", methodBinding); - checkSourceRange(enumConstantDeclaration.getName(), "QUARTER", source); - checkSourceRange(enumConstantDeclaration, "QUARTER(25)", source); - arguments = enumConstantDeclaration.arguments(); - assertEquals("wrong size", 1, arguments.size()); - argument = (Expression) arguments.get(0); - checkSourceRange(argument, "25", source); - assertEquals("not an number literal", ASTNode.NUMBER_LITERAL, argument.getNodeType()); - binding = enumConstantDeclaration.resolveVariable(); - assertNotNull("No binding", binding); - assertEquals("Wrong name", "QUARTER", binding.getName()); - } public void test0028() throws JavaScriptModelException { IJavaScriptUnit sourceUnit = getCompilationUnit("Converter15" , "src", "test0028", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ @@ -1501,65 +1181,6 @@ assertProblemsSize(compilationUnit, 0); } - /** - * Test for https://bugs.eclipse.org/bugs/show_bug.cgi?id=73561 - */ - public void test0048() throws JavaScriptModelException { - IJavaScriptUnit sourceUnit = getCompilationUnit("Converter15" , "src", "test0048", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - char[] source = sourceUnit.getSource().toCharArray(); - ASTNode result = runJLS3Conversion(sourceUnit, true, true); - assertNotNull(result); - assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); - JavaScriptUnit compilationUnit = (JavaScriptUnit) result; - assertProblemsSize(compilationUnit, 0); - ASTNode node = getASTNode(compilationUnit, 0); - assertEquals("Not an enum declaration", ASTNode.ENUM_DECLARATION, node.getNodeType()); - EnumDeclaration enumDeclaration = (EnumDeclaration) node; - List enumConstants = enumDeclaration.enumConstants(); - assertEquals("wrong size", 2, enumConstants.size()); - EnumConstantDeclaration enumConstantDeclaration = (EnumConstantDeclaration) enumConstants.get(0); - IFunctionBinding methodBinding = enumConstantDeclaration.resolveConstructorBinding(); - assertNotNull("No binding", methodBinding); - assertTrue("Not a constructor", methodBinding.isConstructor()); - checkSourceRange(enumConstantDeclaration, "GREEN(0, 1)", source); - checkSourceRange(enumConstantDeclaration.getName(), "GREEN", source); - enumConstantDeclaration = (EnumConstantDeclaration) enumConstants.get(1); - methodBinding = enumConstantDeclaration.resolveConstructorBinding(); - assertNotNull("No binding", methodBinding); - assertTrue("Not a constructor", methodBinding.isConstructor()); - checkSourceRange(enumConstantDeclaration.getName(), "RED", source); - checkSourceRange(enumConstantDeclaration, "RED()", source); - } - - /** - * Test for https://bugs.eclipse.org/bugs/show_bug.cgi?id=73561 - */ - public void test0049() throws JavaScriptModelException { - IJavaScriptUnit sourceUnit = getCompilationUnit("Converter15" , "src", "test0049", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - char[] source = sourceUnit.getSource().toCharArray(); - ASTNode result = runJLS3Conversion(sourceUnit, true, true); - assertNotNull(result); - assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); - JavaScriptUnit compilationUnit = (JavaScriptUnit) result; - assertProblemsSize(compilationUnit, 0); - ASTNode node = getASTNode(compilationUnit, 0); - assertEquals("Not an enum declaration", ASTNode.ENUM_DECLARATION, node.getNodeType()); - EnumDeclaration enumDeclaration = (EnumDeclaration) node; - List enumConstants = enumDeclaration.enumConstants(); - assertEquals("wrong size", 2, enumConstants.size()); - EnumConstantDeclaration enumConstantDeclaration = (EnumConstantDeclaration) enumConstants.get(0); - IFunctionBinding methodBinding = enumConstantDeclaration.resolveConstructorBinding(); - assertNotNull("No binding", methodBinding); - assertTrue("Not a constructor", methodBinding.isConstructor()); - checkSourceRange(enumConstantDeclaration, "GREEN(0, 1)", source); - checkSourceRange(enumConstantDeclaration.getName(), "GREEN", source); - enumConstantDeclaration = (EnumConstantDeclaration) enumConstants.get(1); - methodBinding = enumConstantDeclaration.resolveConstructorBinding(); - assertNotNull("No binding", methodBinding); - assertTrue("Not a constructor", methodBinding.isConstructor()); - checkSourceRange(enumConstantDeclaration.getName(), "RED", source); - checkSourceRange(enumConstantDeclaration, "RED", source); - } /** * Ellipsis @@ -1626,54 +1247,7 @@ JavaScriptUnit compilationUnit = (JavaScriptUnit) result; assertProblemsSize(compilationUnit, 0); } - - /** - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=76100 - */ - public void test0053() throws JavaScriptModelException { - IJavaScriptUnit sourceUnit = getCompilationUnit("Converter15" , "src", "test0053", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runJLS3Conversion(sourceUnit, true, true); - assertNotNull(result); - assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); - JavaScriptUnit compilationUnit = (JavaScriptUnit) result; - assertProblemsSize(compilationUnit, 0); - ASTNode node = getASTNode(compilationUnit, 0); - assertEquals("Not an annotation type declaration", ASTNode.ANNOTATION_TYPE_DECLARATION, node.getNodeType()); - AnnotationTypeDeclaration annotationTypeDeclaration = (AnnotationTypeDeclaration) node; - assertNotNull("No javadoc", annotationTypeDeclaration.getJavadoc()); - } - - /** - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=76100 - */ - public void test0054() throws JavaScriptModelException { - IJavaScriptUnit sourceUnit = getCompilationUnit("Converter15" , "src", "test0054", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runJLS3Conversion(sourceUnit, true, true); - assertNotNull(result); - assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); - JavaScriptUnit compilationUnit = (JavaScriptUnit) result; - assertProblemsSize(compilationUnit, 0); - ASTNode node = getASTNode(compilationUnit, 0); - assertEquals("Not an annotation type declaration", ASTNode.ENUM_DECLARATION, node.getNodeType()); - EnumDeclaration enumDeclaration = (EnumDeclaration) node; - assertNotNull("No javadoc", enumDeclaration.getJavadoc()); - } - - /** - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=76100 - */ - public void test0055() throws JavaScriptModelException { - IJavaScriptUnit sourceUnit = getCompilationUnit("Converter15" , "src", "test0055", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runJLS3Conversion(sourceUnit, true, true); - assertNotNull(result); - assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); - JavaScriptUnit compilationUnit = (JavaScriptUnit) result; - assertProblemsSize(compilationUnit, 0); - ASTNode node = getASTNode(compilationUnit, 0); - assertEquals("Not an annotation type declaration", ASTNode.ANNOTATION_TYPE_DECLARATION, node.getNodeType()); - AnnotationTypeDeclaration annotationTypeDeclaration = (AnnotationTypeDeclaration) node; - assertNotNull("No javadoc", annotationTypeDeclaration.getJavadoc()); - } + /** * @@ -1689,25 +1263,6 @@ } /** - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=77175 - */ - public void test0057() throws JavaScriptModelException { - IJavaScriptUnit sourceUnit = getCompilationUnit("Converter15" , "src", "test0057", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runJLS3Conversion(sourceUnit, true, true); - assertNotNull(result); - assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); - JavaScriptUnit compilationUnit = (JavaScriptUnit) result; - assertProblemsSize(compilationUnit, 0); - ASTNode node = getASTNode(compilationUnit, 0); - assertEquals("Not an enum declaration", ASTNode.ENUM_DECLARATION, node.getNodeType()); - EnumDeclaration enumDeclaration = (EnumDeclaration) node; - ITypeBinding typeBinding = enumDeclaration.resolveBinding(); - assertNotNull("No binding", typeBinding); - assertTrue("Not an enum type", typeBinding.isEnum()); - assertTrue("Not a top level type", typeBinding.isTopLevel()); - } - - /** * https://bugs.eclipse.org/bugs/show_bug.cgi?id=77249 */ public void test0058() throws JavaScriptModelException { @@ -2774,33 +2329,6 @@ }); } - /* - * Check bindings for annotation type declaration - */ - public void test0091() throws JavaScriptModelException { - this.workingCopy = getWorkingCopy("/Converter15/src/p/X.js", true/*resolve*/); - ASTNode node = buildAST( - "package p;\n" + - "@interface X {\n" + - " int id() default 0;\n" + - "}", - this.workingCopy); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit compilationUnit = (JavaScriptUnit) node; - node = getASTNode(compilationUnit, 0); - assertEquals("Not an annotation type declaration", ASTNode.ANNOTATION_TYPE_DECLARATION, node.getNodeType()); - AnnotationTypeDeclaration annotationTypeDeclaration = (AnnotationTypeDeclaration) node; - ITypeBinding binding = annotationTypeDeclaration.resolveBinding(); - assertNotNull("No binding", binding); - assertTrue("Not an annotation", binding.isAnnotation()); - assertEquals("Wrong name", "X", binding.getName()); - node = getASTNode(compilationUnit, 0, 0); - assertEquals("Not an annotation type member declaration", ASTNode.ANNOTATION_TYPE_MEMBER_DECLARATION, node.getNodeType()); - AnnotationTypeMemberDeclaration memberDeclaration = (AnnotationTypeMemberDeclaration) node; - IFunctionBinding methodBinding = memberDeclaration.resolveBinding(); - assertNotNull("No binding", methodBinding); - assertEquals("Wrong name", "id", methodBinding.getName()); - } /* * https://bugs.eclipse.org/bugs/show_bug.cgi?id=80960 @@ -2859,35 +2387,6 @@ assertNotNull("No java element", element); } - - public void test0094() throws JavaScriptModelException { - String contents = - "import java.lang.annotation.Target;\n" + - "import java.lang.annotation.Retention;\n" + - "\n" + - "@Retention(RetentionPolicy.SOURCE)\n" + - "@Target(ElementType.METHOD)\n" + - "@interface ThrowAwayMethod {\n" + - "\n" + - " /**\n" + - " * Comment for <code>test</code>\n" + - " */\n" + - " protected final Test test;\n" + - "\n" + - " /**\n" + - " * @param test\n" + - " */\n" + - " ThrowAwayMethod(Test test) {\n" + - " this.test= test;\n" + - " }\n" + - "}"; - this.workingCopy = getWorkingCopy("/Converter15/src/ThrowAwayMethod.js", true/*resolve*/); - ASTNode node = buildAST( - contents, - this.workingCopy, - false); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - } /* * Ensures that resolving a generic method with a non existing parameter type doesn't throw a NPE when computing its binding key. @@ -2908,85 +2407,7 @@ binding); } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82140 - */ - public void test0096() throws JavaScriptModelException { - String contents = - "public @interface An1 {\n" + - " String value();\n" + - " String item() default \"Hello\";\n" + - "\n" + - "}\n" + - "\n" + - "@An1(value=\"X\") class A {\n" + - " \n" + - "}"; - this.workingCopy = getWorkingCopy("/Converter15/src/An1.js", true/*resolve*/); - ASTNode node = buildAST( - contents, - this.workingCopy); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit compilationUnit = (JavaScriptUnit) node; - node = getASTNode(compilationUnit, 1); - assertEquals("Not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); - TypeDeclaration typeDeclaration = (TypeDeclaration) node; - assertEquals("Wrong name", "A", typeDeclaration.getName().getIdentifier()); - List modifiers = typeDeclaration.modifiers(); - assertEquals("Wrong size", 1, modifiers.size()); - IExtendedModifier modifier = (IExtendedModifier) modifiers.get(0); - assertTrue("Not an annotation", modifier instanceof Annotation); - checkSourceRange((Annotation) modifier, "@An1(value=\"X\")", contents.toCharArray()); - } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82140 - */ - public void test0097() throws JavaScriptModelException { - String contents = - "@interface An1 {}\n" + - "@interface An2 {}\n" + - "@interface An3 {}\n" + - "@An2 class X {\n" + - " @An1 Object o;\n" + - " @An3 void foo() {\n" + - " \n" + - " }\n" + - "}"; - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - ASTNode node = buildAST( - contents, - this.workingCopy); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit compilationUnit = (JavaScriptUnit) node; - assertProblemsSize(compilationUnit, 0); - node = getASTNode(compilationUnit, 3); - assertEquals("Not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); - TypeDeclaration typeDeclaration = (TypeDeclaration) node; - List modifiers = typeDeclaration.modifiers(); - assertEquals("Wrong size", 1, modifiers.size()); - IExtendedModifier modifier = (IExtendedModifier) modifiers.get(0); - assertTrue("Not an annotation", modifier instanceof Annotation); - checkSourceRange((Annotation) modifier, "@An2", contents.toCharArray()); - - node = getASTNode(compilationUnit, 3, 0); - assertEquals("Not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType()); - FieldDeclaration fieldDeclaration = (FieldDeclaration) node; - modifiers = fieldDeclaration.modifiers(); - assertEquals("Wrong size", 1, modifiers.size()); - modifier = (IExtendedModifier) modifiers.get(0); - assertTrue("Not an annotation", modifier instanceof Annotation); - checkSourceRange((Annotation) modifier, "@An1", contents.toCharArray()); - - node = getASTNode(compilationUnit, 3, 1); - assertEquals("Not a field declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType()); - FunctionDeclaration methodDeclaration = (FunctionDeclaration) node; - modifiers = methodDeclaration.modifiers(); - assertEquals("Wrong size", 1, modifiers.size()); - modifier = (IExtendedModifier) modifiers.get(0); - assertTrue("Not an annotation", modifier instanceof Annotation); - checkSourceRange((Annotation) modifier, "@An3", contents.toCharArray()); - } /* * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82140 @@ -3009,120 +2430,7 @@ assertEquals("Wrong size", 0, modifiers.size()); } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82141 - */ - public void test0099() throws JavaScriptModelException { - String contents = - "public class X {\n" + - " @Override @Annot(value=\"Hello\") public String toString() {\n" + - " return super.toString();\n" + - " }\n" + - " @Annot(\"Hello\") void bar() {\n" + - " }\n" + - " @interface Annot {\n" + - " String value();\n" + - " }\n" + - "}"; - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - ASTNode node = buildAST( - contents, - this.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 method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType()); - FunctionDeclaration methodDeclaration = (FunctionDeclaration) node; - List modifiers = methodDeclaration.modifiers(); - assertEquals("Wrong size", 3, modifiers.size()); - IExtendedModifier modifier = (IExtendedModifier) modifiers.get(0); - assertTrue("Wrong type", modifier instanceof Annotation); - Annotation annotation = (Annotation) modifier; - ITypeBinding binding = annotation.resolveTypeBinding(); - assertNotNull("No binding", binding); - - modifier = (IExtendedModifier) modifiers.get(1); - assertTrue("Wrong type", modifier instanceof Annotation); - annotation = (Annotation) modifier; - binding = annotation.resolveTypeBinding(); - assertNotNull("No binding", binding); - assertEquals("Wrong type", ASTNode.NORMAL_ANNOTATION, annotation.getNodeType()); - NormalAnnotation normalAnnotation = (NormalAnnotation) annotation; - List values = normalAnnotation.values(); - assertEquals("wrong size", 1, values.size()); - MemberValuePair valuePair = (MemberValuePair) values.get(0); - SimpleName name = valuePair.getName(); - IBinding binding2 = name.resolveBinding(); - assertNotNull("No binding", binding2); - ITypeBinding typeBinding = name.resolveTypeBinding(); - assertNotNull("No binding", typeBinding); - - node = getASTNode(compilationUnit, 0, 1); - assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType()); - methodDeclaration = (FunctionDeclaration) node; - modifiers = methodDeclaration.modifiers(); - assertEquals("Wrong size", 1, modifiers.size()); - modifier = (IExtendedModifier) modifiers.get(0); - assertTrue("Wrong type", modifier instanceof Annotation); - annotation = (Annotation) modifier; - binding = annotation.resolveTypeBinding(); - assertNotNull("No binding", binding); - } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82216 - */ - public void test0100() throws JavaScriptModelException { - String contents = - "public enum E {\n" + - " A, B, C;\n" + - " public static final E D = B;\n" + - " public static final String F = \"Hello\";\n" + - "}"; - this.workingCopy = getWorkingCopy("/Converter15/src/E.js", true/*resolve*/); - ASTNode node = buildAST( - contents, - this.workingCopy); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit compilationUnit = (JavaScriptUnit) node; - assertProblemsSize(compilationUnit, 0); - node = getASTNode(compilationUnit, 0); - assertEquals("Not an enum declaration", ASTNode.ENUM_DECLARATION, node.getNodeType()); - EnumDeclaration enumDeclaration = (EnumDeclaration) node; - List enumConstants = enumDeclaration.enumConstants(); - assertEquals("wrong size", 3, enumConstants.size()); - EnumConstantDeclaration enumConstantDeclaration = (EnumConstantDeclaration) enumConstants.get(0); - IFunctionBinding methodBinding = enumConstantDeclaration.resolveConstructorBinding(); - assertNotNull("No binding", methodBinding); - assertTrue("Not a constructor", methodBinding.isConstructor()); - IVariableBinding variableBinding = enumConstantDeclaration.resolveVariable(); - assertNotNull("no binding", variableBinding); - assertNull("is constant", variableBinding.getConstantValue()); - assertTrue("Not an enum constant", variableBinding.isEnumConstant()); - - 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); - assertEquals("wrong name", "D", fragment.getName().getIdentifier()); - variableBinding = fragment.resolveBinding(); - assertNotNull("no binding", variableBinding); - assertFalse("An enum constant", variableBinding.isEnumConstant()); - - 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); - assertEquals("wrong name", "F", fragment.getName().getIdentifier()); - variableBinding = fragment.resolveBinding(); - assertNotNull("no binding", variableBinding); - assertNotNull("is constant", variableBinding.getConstantValue()); - } /* * https://bugs.eclipse.org/bugs/show_bug.cgi?id=68823 @@ -3275,180 +2583,9 @@ assertTrue("Wrong type", kind == IBinding.VARIABLE || kind == IBinding.METHOD); } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=83011 - */ - public void test0105() throws JavaScriptModelException { - String contents = - "@interface Ann {}\n" + - "\n" + - "@Ann public class X {}\n"; - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - ASTNode node = buildAST( - contents, - this.workingCopy); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit compilationUnit = (JavaScriptUnit) node; - assertProblemsSize(compilationUnit, 0); - node = getASTNode(compilationUnit, 1); - assertEquals("Not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); - TypeDeclaration typeDeclaration = (TypeDeclaration) node; - List modifiers = typeDeclaration.modifiers(); - assertEquals("Wrong size", 2, modifiers.size()); - IExtendedModifier extendedModifier = (IExtendedModifier) modifiers.get(0); - assertTrue("Not a marker annotation", extendedModifier instanceof MarkerAnnotation); - MarkerAnnotation markerAnnotation = (MarkerAnnotation) extendedModifier; - ITypeBinding binding = markerAnnotation.resolveTypeBinding(); - assertNotNull("No binding", binding); - Name name = markerAnnotation.getTypeName(); - binding = name.resolveTypeBinding(); - assertNotNull("No binding", binding); - } - - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=83011 - */ - public void test0106() throws JavaScriptModelException { - String contents = - "package p;\n" + - "@interface Ann {}\n" + - "\n" + - "@p.Ann public class X {}\n"; - this.workingCopy = getWorkingCopy("/Converter15/src/p/X.js", true/*resolve*/); - ASTNode node = buildAST( - contents, - this.workingCopy); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit compilationUnit = (JavaScriptUnit) node; - assertProblemsSize(compilationUnit, 0); - node = getASTNode(compilationUnit, 1); - assertEquals("Not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); - TypeDeclaration typeDeclaration = (TypeDeclaration) node; - List modifiers = typeDeclaration.modifiers(); - assertEquals("Wrong size", 2, modifiers.size()); - IExtendedModifier extendedModifier = (IExtendedModifier) modifiers.get(0); - assertTrue("Not a marker annotation", extendedModifier instanceof MarkerAnnotation); - MarkerAnnotation markerAnnotation = (MarkerAnnotation) extendedModifier; - ITypeBinding typeBinding = markerAnnotation.resolveTypeBinding(); - assertNotNull("No binding", typeBinding); - Name name = markerAnnotation.getTypeName(); - typeBinding = name.resolveTypeBinding(); - assertNotNull("No binding", typeBinding); - IBinding binding = name.resolveBinding(); - assertNotNull("No binding", binding); - assertEquals("Wrong kind of binding", IBinding.TYPE, binding.getKind()); - assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, name.getNodeType()); - QualifiedName qualifiedName = (QualifiedName) name; - SimpleName simpleName = qualifiedName.getName(); - binding = simpleName.resolveBinding(); - assertNotNull("No binding", binding); - name = qualifiedName.getQualifier(); - binding = name.resolveBinding(); - assertNotNull("No binding", binding); - assertEquals("Wrong kind of binding", IBinding.PACKAGE, binding.getKind()); - } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=83013 - */ - public void test0107() throws JavaScriptModelException { - String contents = - "@interface A {\n" + - " String value() default \"\";\n" + - "}\n" + - "@interface Main {\n" + - " A child() default @A(\"Void\");\n" + - "}\n" + - "@Main(child=@A(\"\")) @A class X {}\n"; - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - ASTNode node = buildAST( - contents, - this.workingCopy); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit compilationUnit = (JavaScriptUnit) node; - assertProblemsSize(compilationUnit, 0); - node = getASTNode(compilationUnit, 2); - assertEquals("Not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); - checkSourceRange(node, "@Main(child=@A(\"\")) @A class X {}", contents.toCharArray()); - } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=83228 - */ - public void test0108() throws JavaScriptModelException { - String contents = - "class X<E> {\n" + - " enum Numbers {\n" + - " ONE {\n" + - " Numbers getSquare() {\n" + - " return ONE;\n" + - " }\n" + - " };\n" + - " abstract Numbers getSquare();\n" + - " }\n" + - "}\n"; - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - ASTNode node = buildAST( - contents, - this.workingCopy); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit compilationUnit = (JavaScriptUnit) node; - assertProblemsSize(compilationUnit, 0); - node = getASTNode(compilationUnit, 0, 0); - EnumDeclaration enumDeclaration = (EnumDeclaration) node; - - List bodyDeclarations = enumDeclaration.bodyDeclarations(); - assertEquals("Wrong size", 1, bodyDeclarations.size()); - FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclarations.get(0); - Type returnType = methodDeclaration.getReturnType2(); - ITypeBinding typeBinding = returnType.resolveBinding(); - List enumConstants = enumDeclaration.enumConstants(); - assertEquals("Wrong size", 1, enumConstants.size()); - EnumConstantDeclaration constantDeclaration = (EnumConstantDeclaration) enumConstants.get(0); - AnonymousClassDeclaration anonymousClassDeclaration = constantDeclaration.getAnonymousClassDeclaration(); - assertNotNull("No anonymous", anonymousClassDeclaration); - 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()); - methodDeclaration = (FunctionDeclaration) bodyDeclaration; - Type type = methodDeclaration.getReturnType2(); - 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 typeBinding2 = simpleName.resolveTypeBinding(); - - assertTrue("Not equals", typeBinding.isEqualTo(typeBinding2)); - assertTrue("Not identical", typeBinding == typeBinding2); - } - - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=883297 - */ - public void test0109() throws JavaScriptModelException { - String contents = - "@Annot(value=\"Hello\", count=-1)\n" + - "@interface Annot {\n" + - " String value();\n" + - " int count();\n" + - "}"; - this.workingCopy = getWorkingCopy("/Converter15/src/Annot.js", true/*resolve*/); - ASTNode node = buildAST( - contents, - this.workingCopy); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit compilationUnit = (JavaScriptUnit) node; - assertProblemsSize(compilationUnit, 0); - node = getASTNode(compilationUnit, 0); - AnnotationTypeDeclaration annotationTypeDeclaration = (AnnotationTypeDeclaration) node; - ITypeBinding typeBinding = annotationTypeDeclaration.resolveBinding(); - assertNotNull("No type binding", typeBinding); - IFunctionBinding[] methods = typeBinding.getDeclaredMethods(); - assertEquals("Wrong size", 2, methods.length); - } /* * Ensures that the type declaration of a top level type binding is correct. @@ -4222,47 +3359,6 @@ assertEquals("wrong name", "test0139a", packageBinding.getName()); } - /** - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=85115 - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=85215 - */ - public void test0140() throws JavaScriptModelException { - IJavaScriptUnit sourceUnit = getCompilationUnit("Converter15" , "src", "test0140", "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); - ASTNode node = getASTNode(compilationUnit, 0); - assertNotNull("No node", node); - assertEquals("Not an enum declaration", ASTNode.ENUM_DECLARATION, node.getNodeType()); - EnumDeclaration enumDeclaration = (EnumDeclaration) node; - List modifiers = enumDeclaration.modifiers(); - assertEquals("Wrong size", 2, modifiers.size()); - IExtendedModifier modifier = (IExtendedModifier) modifiers.get(0); - assertTrue("Wrong type", modifier instanceof MarkerAnnotation); - MarkerAnnotation markerAnnotation = (MarkerAnnotation) modifier; - ITypeBinding typeBinding = markerAnnotation.resolveTypeBinding(); - assertTrue("Not an annotation", typeBinding.isAnnotation()); - assertTrue("Not a top level type", typeBinding.isTopLevel()); - - sourceUnit = getCompilationUnit("Converter15" , "src", "test0140", "Annot.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - result = runJLS3Conversion(sourceUnit, true, false); - assertNotNull(result); - assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); - compilationUnit = (JavaScriptUnit) result; - assertProblemsSize(compilationUnit, 0); - node = getASTNode(compilationUnit, 0); - assertNotNull("No node", node); - assertEquals("Not an annotation declaration", ASTNode.ANNOTATION_TYPE_DECLARATION, node.getNodeType()); - AnnotationTypeDeclaration annotationTypeDeclaration = (AnnotationTypeDeclaration) node; - modifiers = annotationTypeDeclaration.modifiers(); - assertEquals("Wrong size", 1, modifiers.size()); - typeBinding = annotationTypeDeclaration.resolveBinding(); - int modifierValue = typeBinding.getModifiers(); - assertEquals("Type is not public", Modifier.PUBLIC, modifierValue); - } - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=83100 public void test0141() throws CoreException { this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); @@ -4486,213 +3582,8 @@ assertProblemsSize(compilationUnit, 0); } - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=87350 - public void test0148() throws CoreException { - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - String contents = - "public enum X {\n" + - " RED, GREEN(), BLUE(17), PINK(1) {/*anon*};\n" + - " Color() {}\n" + - " Color(int i) {}\n"; - ASTNode node = buildAST( - contents, - this.workingCopy, - false); - assertNotNull("No node", node); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit compilationUnit = (JavaScriptUnit) node; - String expectedErrors = "The constructor X(int) is undefined\n" + - "The constructor X(int) is undefined\n" + - "Unexpected end of comment"; - assertProblemsSize(compilationUnit, 3, expectedErrors); - } + - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=88252 - public void test0149() throws CoreException { - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - String contents = - " interface Jpf {\n" + - " @interface Action {\n" + - " ValidatableProperty[] validatableProperties();\n" + - " }\n" + - " \n" + - " @interface ValidatableProperty {\n" + - " String propertyName();\n" + - " ValidationLocaleRules[] localeRules();\n" + - " }\n" + - " \n" + - " @interface ValidationLocaleRules {\n" + - " ValidateMinLength validateMinLength();\n" + - " }\n" + - " \n" + - " @interface ValidateMinLength {\n" + - " String chars();\n" + - " }\n" + - "}\n" + - " \n" + - " public class X {\n" + - " \n" + - " @Jpf.Action(\n" + - " validatableProperties={@Jpf.ValidatableProperty(propertyName=\"fooField\",\n" + - " localeRules={@Jpf.ValidationLocaleRules(\n" + - " validateMinLength=@Jpf.ValidateMinLength(chars=\"12\")\n" + - " )}\n" + - " )}\n" + - " )\n" + - " public String actionForValidationRuleTest() {\n" + - " return null;\n" + - " }\n" + - "}"; - ASTNode node = buildAST( - contents, - this.workingCopy); - assertNotNull("No node", node); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit compilationUnit = (JavaScriptUnit) node; - assertProblemsSize(compilationUnit, 0); - node = getASTNode(compilationUnit, 1, 0); - assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType()); - FunctionDeclaration methodDeclaration = (FunctionDeclaration) node; - List modifiers = methodDeclaration.modifiers(); - assertEquals("Wrong size", 2, modifiers.size()); - IExtendedModifier modifier = (IExtendedModifier) modifiers.get(0); - assertTrue("Not a normal annotation", modifier instanceof NormalAnnotation); - NormalAnnotation annotation = (NormalAnnotation) modifier; - List values = annotation.values(); - assertEquals("wrong size", 1, values.size()); - MemberValuePair memberValuePair = (MemberValuePair) values.get(0); - Expression expression = memberValuePair.getValue(); - assertEquals("Not an array initializer", ASTNode.ARRAY_INITIALIZER, expression.getNodeType()); - ArrayInitializer arrayInitializer = (ArrayInitializer) expression; - List expressions = arrayInitializer.expressions(); - assertEquals("wrong size", 1, expressions.size()); - Expression expression2 = (Expression) expressions.get(0); - assertEquals("Not a normal annotation", ASTNode.NORMAL_ANNOTATION, expression2.getNodeType()); - NormalAnnotation annotation2 = (NormalAnnotation) expression2; - values = annotation2.values(); - assertEquals("wrong size", 2, values.size()); - MemberValuePair memberValuePair2 = (MemberValuePair) values.get(1); - Expression expression3 = memberValuePair2.getValue(); - assertEquals("Not an array initializer", ASTNode.ARRAY_INITIALIZER, expression3.getNodeType()); - arrayInitializer = (ArrayInitializer) expression3; - expressions = arrayInitializer.expressions(); - assertEquals("wrong size", 1, expressions.size()); - Expression expression4 = (Expression) expressions.get(0); - assertEquals("Not a normal annotation", ASTNode.NORMAL_ANNOTATION, expression4.getNodeType()); - NormalAnnotation annotation3 = (NormalAnnotation) expression4; - values = annotation3.values(); - assertEquals("wrong size", 1, values.size()); - MemberValuePair memberValuePair3 = (MemberValuePair) values.get(0); - Expression expression5 = memberValuePair3.getValue(); - assertEquals("Not a normal annotation", ASTNode.NORMAL_ANNOTATION, expression5.getNodeType()); - NormalAnnotation annotation4 = (NormalAnnotation) expression5; - checkSourceRange(annotation4, "@Jpf.ValidateMinLength(chars=\"12\")", contents); - checkSourceRange(memberValuePair3, "validateMinLength=@Jpf.ValidateMinLength(chars=\"12\")", contents); - } - - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=88224 - public void test0150() throws CoreException { - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - String contents = - "public class X {\n" + - " void foo() {\n" + - " class Local {\n" + - " static enum E {\n" + - " C, B;\n" + - " }\n" + - " }\n" + - " }\n" + - " void bar() {\n" + - " }\n" + - "}"; - ASTNode node = buildAST( - contents, - this.workingCopy, - false); - assertNotNull("No node", node); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit compilationUnit = (JavaScriptUnit) node; - final String expectedErrors = "The member enum E cannot be local"; - assertProblemsSize(compilationUnit, 1, expectedErrors); - node = getASTNode(compilationUnit, 0, 0, 0); - assertEquals("Not a type declaration statement", ASTNode.TYPE_DECLARATION_STATEMENT, node.getNodeType()); - TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) node; - AbstractTypeDeclaration typeDeclaration = typeDeclarationStatement.getDeclaration(); - List bodyDeclarations = typeDeclaration.bodyDeclarations(); - assertEquals("Wrong size", 1, bodyDeclarations.size()); - BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0); - assertEquals("Not an enum declaration", ASTNode.ENUM_DECLARATION, bodyDeclaration.getNodeType()); - EnumDeclaration enumDeclaration = (EnumDeclaration) bodyDeclaration; - List enumConstants = enumDeclaration.enumConstants(); - assertEquals("Wrong size", 2, enumConstants.size()); - EnumConstantDeclaration enumConstantDeclaration = (EnumConstantDeclaration) enumConstants.get(0); - checkSourceRange(enumConstantDeclaration, "C", contents); - enumConstantDeclaration = (EnumConstantDeclaration) enumConstants.get(1); - checkSourceRange(enumConstantDeclaration, "B", contents); - } - - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=88548 - public void test0151() throws CoreException { - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - String contents = - "public enum X {\n" + - " RED, GREEN(), BLUE(17);\n" + - " X() {}\n" + - " X(int i) {}\n" + - " public static void main(String[] args) {\n" + - " for (X x : X.values()) {\n" + - " switch(x) {\n" + - " case RED :\n" + - " System.out.println(\"ROUGE\");\n" + - " break;\n" + - " case GREEN :\n" + - " System.out.println(\"VERT\");\n" + - " break;\n" + - " case BLUE :\n" + - " System.out.println(\"BLEU\");\n" + - " break;\n" + - " }\n" + - " }\n" + - " }\n" + - "}"; - ASTNode node = buildAST( - contents, - this.workingCopy); - assertNotNull("No node", node); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit compilationUnit = (JavaScriptUnit) node; - assertProblemsSize(compilationUnit, 0); - node = getASTNode(compilationUnit, 0); - assertEquals("Not an enum declaration", ASTNode.ENUM_DECLARATION, node.getNodeType()); - EnumDeclaration enumDeclaration = (EnumDeclaration) node; - List bodyDeclarations = enumDeclaration.bodyDeclarations(); - assertEquals("Wrong size", 3, bodyDeclarations.size()); - BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(2); - assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, bodyDeclaration.getNodeType()); - FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration; - Block block = methodDeclaration.getBody(); - assertNotNull("No body", block); - List statements = block.statements(); - assertEquals("Wrong size", 1, statements.size()); - Statement statement = (Statement) statements.get(0); - assertEquals("Not an enhanced for statement", ASTNode.ENHANCED_FOR_STATEMENT, statement.getNodeType()); - EnhancedForStatement forStatement = (EnhancedForStatement) statement; - Statement statement2 = forStatement.getBody(); - assertEquals("Not a block", ASTNode.BLOCK, statement2.getNodeType()); - Block block2 = (Block) statement2; - statements = block2.statements(); - assertEquals("Wrong size", 1, statements.size()); - statement = (Statement) statements.get(0); - assertEquals("Not a switch statement", ASTNode.SWITCH_STATEMENT, statement.getNodeType()); - SwitchStatement switchStatement = (SwitchStatement) statement; - statements = switchStatement.statements(); - assertEquals("Wrong size", 9, statements.size()); - statement = (Statement) statements.get(0); - assertEquals("Not a switch case statement", ASTNode.SWITCH_CASE, statement.getNodeType()); - SwitchCase switchCase = (SwitchCase) statement; - Expression expression = switchCase.getExpression(); - assertNull("Got a constant", expression.resolveConstantExpressionValue()); - } // https://bugs.eclipse.org/bugs/show_bug.cgi?id=88548 public void test0152() throws CoreException { @@ -5459,27 +4350,6 @@ checkSourceRange(wildcardType, "? super java.lang.Number", contents); } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=93075 - */ - public void test0179() throws CoreException { - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - String contents = - "@interface Test {}\n" + - "public enum X\n" + - "{\n" + - " /*start*/@Test HISTORY/*end*/\n" + - "}"; - ASTNode node = buildAST( - contents, - this.workingCopy); - assertEquals("Not an enum constant declaration", ASTNode.ENUM_CONSTANT_DECLARATION, node.getNodeType()); - EnumConstantDeclaration constantDeclaration = (EnumConstantDeclaration) node; - List modifiers = constantDeclaration.modifiers(); - assertEquals("Wrong size", 1, modifiers.size()); - IExtendedModifier modifier = (IExtendedModifier) modifiers.get(0); - assertTrue("Not a marker annotation", modifier instanceof MarkerAnnotation); - } /* * https://bugs.eclipse.org/bugs/show_bug.cgi?id=92360 @@ -6136,46 +5006,7 @@ assertTrue("not a primitive type", type.isPrimitiveType()); } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=110657 - */ - public void test0202() throws CoreException { - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - final String source = "public class X {\n" + - " public static void main(String[] args) {\n" + - " byte[] b1 = new byte[0];\n" + - " byte[] b2 = new byte[0];\n" + - " for (@Ann final byte bs[] : new byte[][] { b1, b2 }) {\n" + - " System.out.println(bs);\n" + - " }\n" + - " }\n" + - "}\n" + - "@interface Ann {}"; - ASTNode node = buildAST( - source, - this.workingCopy, - false); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit compilationUnit = (JavaScriptUnit) node; - assertProblemsSize(compilationUnit, 0); - node = getASTNode(compilationUnit, 0, 0, 2); - assertEquals("Not an enhanced for statement", ASTNode.ENHANCED_FOR_STATEMENT, node.getNodeType()); - EnhancedForStatement forStatement = (EnhancedForStatement) node; - final SingleVariableDeclaration parameter = forStatement.getParameter(); - final Type type = parameter.getType(); - assertEquals("Wrong extended dimension", 1, parameter.getExtraDimensions()); - checkSourceRange(type, "byte", source); - checkSourceRange(parameter, "@Ann final byte bs[]", source); - assertTrue("not a primitive type", type.isPrimitiveType()); - List modifiers = parameter.modifiers(); - assertEquals("Wrong size", 2, modifiers.size()); - final ASTNode modifier1 = ((ASTNode) modifiers.get(0)); - assertEquals("Not an annotation", ASTNode.MARKER_ANNOTATION, modifier1.getNodeType()); - final ASTNode modifier2 = ((ASTNode) modifiers.get(1)); - assertEquals("Not a modifier", ASTNode.MODIFIER, modifier2.getNodeType()); - checkSourceRange(modifier1, "@Ann", source); - checkSourceRange(modifier2, "final", source); - } + /* * https://bugs.eclipse.org/bugs/show_bug.cgi?id=80472 */ @@ -6249,44 +5080,6 @@ assertFalse("Declaration and reference keys should not be the same", bindings[0].getKey().equals(bindings[1].getKey())); } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=120263 - */ - public void test0206() throws JavaScriptModelException { - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - String contents = - "public class X {\n" + - " public @interface Annot {\n" + - " }\n" + - " @Annot(newAttrib= {1, 2})\n" + - " public void foo() {\n" + - " }\n" + - "}"; - ASTNode node = buildAST( - contents, - this.workingCopy, - false); - assertNotNull("No node", node); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit compilationUnit = (JavaScriptUnit) node; - assertProblemsSize(compilationUnit, 1, "The attribute newAttrib is undefined for the annotation type X.Annot"); - node = getASTNode(compilationUnit, 0, 1); - assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType()); - FunctionDeclaration methodDeclaration = (FunctionDeclaration) node; - List modifiers = methodDeclaration.modifiers(); - assertEquals("Wrong size", 2, modifiers.size()); - IExtendedModifier extendedModifier = (IExtendedModifier) modifiers.get(0); - assertTrue("Not a normal annotation", extendedModifier instanceof NormalAnnotation); - NormalAnnotation annotation = (NormalAnnotation) extendedModifier; - List values = annotation.values(); - assertEquals("Wrong size", 1, values.size()); - MemberValuePair memberValuePair = (MemberValuePair) values.get(0); - Expression value = memberValuePair.getValue(); - assertEquals("Not an array initializer", ASTNode.ARRAY_INITIALIZER, value.getNodeType()); - ArrayInitializer arrayInitializer = (ArrayInitializer) value; - ITypeBinding typeBinding = arrayInitializer.resolveTypeBinding(); - assertNotNull("No binding", typeBinding); - } /* * https://bugs.eclipse.org/bugs/show_bug.cgi?id=124716 @@ -6313,88 +5106,9 @@ ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression; IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding(); assertNotNull("Should not be null", binding); - IAnnotationBinding[] annotations = binding.getAnnotations(); - assertNotNull("Should not be null", annotations); - assertEquals("Should be empty", 0, annotations.length); } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=125807 - */ - public void test0208() throws JavaScriptModelException { - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - String contents = - "@Override(x= 1)\n" + - "public class X { }"; - ASTNode node = buildAST( - contents, - this.workingCopy, - false); - assertNotNull("No node", node); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit compilationUnit = (JavaScriptUnit) node; - String problems = - "The annotation @Override is disallowed for this location\n" + - "The attribute x is undefined for the annotation type Override"; - assertProblemsSize(compilationUnit, 2, problems); - node = getASTNode(compilationUnit, 0); - assertEquals("Not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); - TypeDeclaration typeDeclaration = (TypeDeclaration) node; - List modifiers = typeDeclaration.modifiers(); - assertEquals("Wrong size", 2, modifiers.size()); - assertTrue("Wrong type", modifiers.get(0) instanceof NormalAnnotation); - NormalAnnotation normalAnnotation = (NormalAnnotation) modifiers.get(0); - IAnnotationBinding annotationBinding = normalAnnotation.resolveAnnotationBinding(); - IMemberValuePairBinding[] pairs = annotationBinding.getDeclaredMemberValuePairs(); - assertEquals("Wrong size", 1, pairs.length); - assertNotNull("Should not be null", pairs[0].getValue()); - } - public void test0209() throws JavaScriptModelException { - this.workingCopy = getWorkingCopy("/Converter15/src/test/V.js", true/*resolve*/); - String contents = - "package test;\n" + - "import pack.*;\n" + - "public class V {\n" + - " void bar() {\n" + - " }\n" + - " void foo() {\n" + - " @A3(\n" + - " annot = @A2(\n" + - " annot = @A1(value = E.CV, list = new E[] { E.CAV, E.CAV}, clazz = E.class),\n" + - " value = E.CV,\n" + - " list = new E[] { E.CAV, E.CAV},\n" + - " clazz = E.class),\n" + - " value = E.CV,\n" + - " list = new E[] { E.CAV, E.CAV},\n" + - " clazz = E.class)\n" + - " int x = 0;\n" + - " System.out.println(x);\n" + - " System.out.println(x + 1);\n" + - " }\n" + - "}"; - ASTNode node = buildAST( - contents, - this.workingCopy, - false); - assertNotNull("No node", node); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit compilationUnit = (JavaScriptUnit) node; - String problems = - "The value for annotation attribute A1.list must be an array initializer\n" + - "The value for annotation attribute A2.list must be an array initializer\n" + - "The value for annotation attribute A3.list must be an array initializer"; - assertProblemsSize(compilationUnit, 3, problems); - List imports = compilationUnit.imports(); - assertEquals("wrong size", 1, imports.size()); - ImportDeclaration importDeclaration = (ImportDeclaration) imports.get(0); - Name name = importDeclaration.getName(); - assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, name.getNodeType()); - SimpleName simpleName = (SimpleName) name; - IBinding binding = simpleName.resolveBinding(); - assertNotNull("No binding", binding); - assertEquals("Wrong type", IBinding.PACKAGE, binding.getKind()); - } public void test0210() throws JavaScriptModelException { this.workingCopy = getWorkingCopy("/Converter15/src/X.js", false); String contents = @@ -6511,8 +5225,6 @@ checkSourceRange(simpleName, "length", contents); IBinding binding = simpleName.resolveBinding(); assertEquals("Not a field", IBinding.VARIABLE, binding.getKind()); - IVariableBinding variableBinding = (IVariableBinding) binding; - assertEquals("No annotations", 0, variableBinding.getAnnotations().length); } /* @@ -6877,81 +5589,6 @@ assertEquals("Wrong size", 0, typeArguments.length); } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=140318 - */ - public void test0218() throws JavaScriptModelException { - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - String contents = - "import java.util.List;\n" + - "\n" + - "public class X {\n" + - " /**\n" + - " * @category fo\n" + - " */\n" + - " @Test private int fXoo;\n" + - "}"; - ASTNode node = buildAST( - contents, - this.workingCopy, - false); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit unit = (JavaScriptUnit) node; - assertProblemsSize(unit, 1, "Test cannot be resolved to a type"); - node = getASTNode(unit, 0, 0); - assertEquals("Not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType()); - FieldDeclaration declaration = (FieldDeclaration) node; - List modifiers = declaration.modifiers(); - assertEquals("wrong size", 2, modifiers.size()); - assertEquals("Not a marker annotation", ASTNode.MARKER_ANNOTATION, ((ASTNode) modifiers.get(0)).getNodeType()); - MarkerAnnotation annotation = (MarkerAnnotation) modifiers.get(0); - Name name = annotation.getTypeName(); - assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, name.getNodeType()); - ITypeBinding binding = name.resolveTypeBinding(); - assertNull("Got a binding", binding); - IBinding binding2 = name.resolveBinding(); - assertNull("Got a binding", binding2); - IAnnotationBinding annotationBinding = annotation.resolveAnnotationBinding(); - assertNull("Got a binding", annotationBinding); - } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=140318 - */ - public void test0219() throws JavaScriptModelException { - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - String contents = - "import java.util.List;\n" + - "\n" + - "public class X {\n" + - " /**\n" + - " * @category fo\n" + - " */\n" + - " @Test private int fXoo;\n" + - "}\n" + - "class Test {}"; - ASTNode node = buildAST( - contents, - this.workingCopy, - false); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit unit = (JavaScriptUnit) node; - assertProblemsSize(unit, 1, "Type mismatch: cannot convert from Test to Annotation"); - node = getASTNode(unit, 0, 0); - assertEquals("Not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType()); - FieldDeclaration declaration = (FieldDeclaration) node; - List modifiers = declaration.modifiers(); - assertEquals("wrong size", 2, modifiers.size()); - assertEquals("Not a marker annotation", ASTNode.MARKER_ANNOTATION, ((ASTNode) modifiers.get(0)).getNodeType()); - MarkerAnnotation annotation = (MarkerAnnotation) modifiers.get(0); - Name name = annotation.getTypeName(); - assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, name.getNodeType()); - ITypeBinding binding = name.resolveTypeBinding(); - assertNotNull("No binding", binding); - IBinding binding2 = name.resolveBinding(); - assertNotNull("No binding", binding2); - IAnnotationBinding annotationBinding = annotation.resolveAnnotationBinding(); - assertNull("Got a binding", annotationBinding); - } /* * https://bugs.eclipse.org/bugs/show_bug.cgi?id=142793 @@ -7063,321 +5700,7 @@ assertNotNull("No expression", expression); assertEquals("Not a method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType()); } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=153303 - */ - public void test0223() throws JavaScriptModelException { - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - String contents = - "public class X {\n" + - " @Zork\n" + - " public void foo( ) {\n" + - " }\n" + - "}"; - ASTNode node = buildAST( - contents, - this.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); - assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType()); - FunctionDeclaration methodDeclaration = (FunctionDeclaration) node; - IFunctionBinding methodBinding = methodDeclaration.resolveBinding(); - IAnnotationBinding[] annotations = methodBinding.getAnnotations(); - assertEquals("Wrong size", 0, annotations.length); - } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=153303 - */ - public void test0224() throws JavaScriptModelException { - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - String contents = - "@Zork\n" + - "public class X {\n" + - "}"; - ASTNode node = buildAST( - contents, - this.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); - assertEquals("Not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); - TypeDeclaration typeDeclaration = (TypeDeclaration) node; - ITypeBinding typeBinding = typeDeclaration.resolveBinding(); - IAnnotationBinding[] annotations = typeBinding.getAnnotations(); - assertEquals("Wrong size", 0, annotations.length); - } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=153303 - */ - public void test0225() throws JavaScriptModelException { - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - String contents = - "public class X {\n" + - " public void foo(@Zork String s) {\n" + - " }\n" + - "}"; - ASTNode node = buildAST( - contents, - this.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); - 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 singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(0); - IVariableBinding variableBinding = singleVariableDeclaration.resolveBinding(); - IAnnotationBinding[] bindings = variableBinding.getAnnotations(); - assertEquals("Wrong size", 0, bindings.length); - } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=153303 - */ - public void test0226() throws JavaScriptModelException { - this.workingCopy = getWorkingCopy("/Converter15/src/p/package-info.js", true/*resolve*/); - String contents = - "@Zork package p;"; - ASTNode node = buildAST( - contents, - this.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"); - PackageDeclaration packageDeclaration = unit.getPackage(); - IPackageBinding packageBinding = packageDeclaration.resolveBinding(); - IAnnotationBinding[] annotations = packageBinding.getAnnotations(); - assertEquals("Wrong size", 0, annotations.length); - } - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=155115 - public void test0227() throws JavaScriptModelException { - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - String contents = - "import anno.Anno;\n" + - "import binary.B;\n" + - "import intf.IFoo;\n" + - "\n" + - "public class X extends B {\n" + - " @Anno(clz=IFoo.IBar.class)\n" + - // the annotation we chase up is not this one, but the one - // carried by B#f - " public void f() {}\n" + - " IFoo.IBar m;\n" + - "}"; - 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) { - } - } - this.workingCopy.getBuffer().setContents(contents); - this.workingCopy.save(null, true); - TestASTRequestor requestor = new TestASTRequestor(); - resolveASTs(new IJavaScriptUnit[] { this.workingCopy } , new String[0], requestor, this.getJavaProject("Converter15"), null); - ArrayList asts = requestor.asts; - assertEquals("Wrong size", 1, asts.size()); - JavaScriptUnit compilationUnit = (JavaScriptUnit) asts.get(0); - assertNotNull("No compilation unit", compilationUnit); - List types = compilationUnit.types(); - assertEquals("Wrong size", 1, types.size()); - AbstractTypeDeclaration abstractTypeDeclaration = (AbstractTypeDeclaration) types.get(0); - assertEquals("Wrong type", ASTNode.TYPE_DECLARATION, abstractTypeDeclaration.getNodeType()); - TypeDeclaration declaration = (TypeDeclaration) abstractTypeDeclaration; - Type superclass = declaration.getSuperclassType(); - assertNotNull("No superclass", superclass); - ITypeBinding typeBinding = superclass.resolveBinding(); - assertNotNull("No binding", typeBinding); - IFunctionBinding[] methods = typeBinding.getDeclaredMethods(); - assertNotNull("No methods", methods); - assertEquals("Wrong size", 2, methods.length); - IFunctionBinding methodBinding = null; - for(int i = 0; i < 2; i++) { - methodBinding = methods[i]; - if (methodBinding.getName().equals("f")) { - break; - } - } - assertEquals("Wrong name", "f", methodBinding.getName()); - IAnnotationBinding[] annotationBindings = methodBinding.getAnnotations(); - assertNotNull("No annotations", annotationBindings); - assertEquals("Wrong size", 1, annotationBindings.length); - IAnnotationBinding annotationBinding = annotationBindings[0]; - IMemberValuePairBinding[] pairs = annotationBinding.getAllMemberValuePairs(); - assertNotNull("no pairs", pairs); - assertEquals("Wrong size", 1, pairs.length); - IMemberValuePairBinding memberValuePairBinding = pairs[0]; - assertEquals("Wrong kind", IBinding.MEMBER_VALUE_PAIR, memberValuePairBinding.getKind()); - Object value = memberValuePairBinding.getValue(); - assertNotNull("No value", value); - assertTrue("Not a type binding", value instanceof ITypeBinding); - assertEquals("Wrong qualified name", "intf.IFoo.IBar", - ((ITypeBinding) value).getQualifiedName()); - IVariableBinding[] fields = - declaration.resolveBinding().getDeclaredFields(); - assertTrue("Bad field definition", fields != null && fields.length == 1); - assertEquals("Type binding mismatch", value, fields[0].getType()); - } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=157403 - */ - public void test0228() throws JavaScriptModelException { - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - String contents = - "@interface Ann {\n" + - " int foo();\n" + - "}\n" + - "@Ann(foo = bar())\n" + - "public class X {\n" + - " public static int bar() {\n" + - " return 0;\n" + - " }\n" + - "}"; - ASTNode node = buildAST( - contents, - this.workingCopy, - false); - assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); - JavaScriptUnit unit = (JavaScriptUnit) node; - assertProblemsSize(unit, 1, "The method bar() is undefined for the type X"); - List types = unit.types(); - assertEquals("wrong size", 2, types.size()); - AbstractTypeDeclaration typeDeclaration = (AbstractTypeDeclaration) types.get(1); - assertEquals("Not a type declaration", ASTNode.TYPE_DECLARATION, typeDeclaration.getNodeType()); - TypeDeclaration declaration = (TypeDeclaration) typeDeclaration; - List modifiers = declaration.modifiers(); - assertEquals("wrong size", 2, modifiers.size()); - IExtendedModifier modifier = (IExtendedModifier) modifiers.get(0); - assertTrue("not an annotation", modifier.isAnnotation()); - Annotation annotation = (Annotation) modifier; - assertEquals("Not a normal annotation", ASTNode.NORMAL_ANNOTATION, annotation.getNodeType()); - NormalAnnotation normalAnnotation = (NormalAnnotation) annotation; - List values = normalAnnotation.values(); - assertEquals("wrong size", 1, values.size()); - MemberValuePair pair = (MemberValuePair) values.get(0); - IBinding binding = pair.getName().resolveBinding(); - assertNotNull("No binding", binding); - binding = pair.getValue().resolveTypeBinding(); - assertNull("Got a binding", binding); - binding = pair.resolveMemberValuePairBinding(); - assertNotNull("No binding", binding); - } - - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=160089 - */ - public void test0229() throws JavaScriptModelException { - this.workingCopy = getWorkingCopy("/Converter15/src/X.js", true/*resolve*/); - String contents = - "import java.util.List;\n" + - "import java.util.Collection;\n" + - "public class X {\n" + - " public static List<String> bar;\n" + - " @SuppressWarnings(\"unchecked\")\n" + - " public static Collection bar2;\n" + - "}"; - this.workingCopy.getBuffer().setContents(contents); - this.workingCopy.save(null, true); - final ASTNode[] asts = new ASTNode[1]; - final IBinding[] bindings = new IBinding[1]; - final String key = BindingKey.createParameterizedTypeBindingKey( - "Ljava/util/Collection<TE;>;", new String[] {}); - resolveASTs( - new IJavaScriptUnit[] { - this.workingCopy - }, - new String[] { - key - }, - new ASTRequestor() { - public void acceptAST(IJavaScriptUnit source, JavaScriptUnit localAst) { - asts[0] = localAst; - } - public void acceptBinding(String bindingKey, IBinding binding) { - if (key.equals(bindingKey)) { - bindings[0] = binding; - } - } - }, - getJavaProject("Converter15"), - null); - ASTNode node = asts[0]; - assertNotNull("Should not be null", node); - assertNotNull("Should not be null", bindings[0]); - 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 compilation unit", ASTNode.FIELD_DECLARATION, node.getNodeType()); - FieldDeclaration fieldDeclaration = (FieldDeclaration) node; - Type type = fieldDeclaration.getType(); - ITypeBinding typeBinding = type.resolveBinding(); - node = getASTNode(unit, 0, 1); - assertEquals("Not a compilation unit", ASTNode.FIELD_DECLARATION, node.getNodeType()); - fieldDeclaration = (FieldDeclaration) node; - type = fieldDeclaration.getType(); - ITypeBinding typeBinding2 = type.resolveBinding(); - final ITypeBinding collectionTypeBinding = (ITypeBinding) bindings[0]; - assertTrue("Not a raw type", collectionTypeBinding.isRawType()); - assertTrue("Not assignement compatible", typeBinding.isAssignmentCompatible(typeBinding2)); - assertTrue("Not assignement compatible", typeBinding.isAssignmentCompatible(collectionTypeBinding)); - } - - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=156352 - */ - public void test0230() throws JavaScriptModelException { - IJavaScriptUnit sourceUnit = getCompilationUnit("Converter15" , "src", "test0230", "Test3.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - IType type = sourceUnit.getType("Test3");//$NON-NLS-1$ - - assertNotNull("Should not be null", type); - ASTParser parser= ASTParser.newParser(AST.JLS3); - parser.setProject(type.getJavaScriptProject()); - IBinding[] bindings= parser.createBindings(new IJavaScriptElement[] { type }, null); - if (bindings.length == 1 && bindings[0] instanceof ITypeBinding) { - ITypeBinding typeBinding= (ITypeBinding) bindings[0]; - StringBuffer buffer = new StringBuffer(); - while (typeBinding != null) { - buffer.append(typeBinding.getAnnotations().length); - typeBinding= typeBinding.getSuperclass(); - } - assertEquals("Wrong number of annotations", "000", String.valueOf(buffer)); - } - } - - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=156352 - */ - public void test0231() throws JavaScriptModelException { - IJavaScriptUnit sourceUnit = getCompilationUnit("Converter15" , "src", "test0231", "Test3.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - IType type = sourceUnit.getType("Test3");//$NON-NLS-1$ - - assertNotNull("Should not be null", type); - ASTParser parser= ASTParser.newParser(AST.JLS3); - parser.setSource(sourceUnit); - parser.setKind(ASTParser.K_COMPILATION_UNIT); - parser.setResolveBindings(true); - JavaScriptUnit unit = (JavaScriptUnit) parser.createAST(null); - List types = unit.types(); - TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0); - ITypeBinding typeBinding = typeDeclaration.resolveBinding(); - StringBuffer buffer = new StringBuffer(); - while (typeBinding != null) { - buffer.append(typeBinding.getAnnotations().length); - typeBinding= typeBinding.getSuperclass(); - } - assertEquals("Wrong number of annotations", "020", String.valueOf(buffer)); - } /* * https://bugs.eclipse.org/bugs/show_bug.cgi?id=167958 @@ -7420,13 +5743,6 @@ Type type = declaration.getReturnType2(); ITypeBinding typeBinding = type.resolveBinding(); assertTrue("Not a binary type binding", !typeBinding.isFromSource()); - IAnnotationBinding[] annotations = typeBinding.getAnnotations(); - assertNotNull("No annotations", annotations); - assertEquals("Wrong size", 1, annotations.length); - IAnnotationBinding annotationBinding = annotations[0]; - assertEquals("Wrong name", "Annot", annotationBinding.getName()); - ITypeBinding binding = annotationBinding.getAnnotationType(); - assertEquals("Wrong name", "test0232.Annot", binding.getQualifiedName()); } /* @@ -7475,17 +5791,6 @@ Type type = declaration.getReturnType2(); ITypeBinding typeBinding = type.resolveBinding(); assertTrue("Not a binary type binding", !typeBinding.isFromSource()); - IAnnotationBinding[] annotations = typeBinding.getAnnotations(); - assertNotNull("No annotations", annotations); - assertEquals("Wrong size", 1, annotations.length); - IAnnotationBinding annotationBinding = annotations[0]; - assertEquals("Wrong name", "Annot", annotationBinding.getName()); - ITypeBinding binding = annotationBinding.getAnnotationType(); - assertEquals("Wrong name", "test0233.Annot", binding.getQualifiedName()); - IMemberValuePairBinding[] pairs = annotationBinding.getAllMemberValuePairs(); - assertEquals("Wrong number", 1, pairs.length); - assertEquals("Wrong key", "message", pairs[0].getName()); - assertEquals("Wrong value", "Hello, World!", pairs[0].getValue()); } /*
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterBindingsTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterBindingsTest.java index bf4b483..82a4290 100644 --- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterBindingsTest.java +++ b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterBindingsTest.java
@@ -15,16 +15,14 @@ import junit.framework.Test; -import org.eclipse.wst.jsdt.core.IJavaScriptUnit; import org.eclipse.wst.jsdt.core.IJavaScriptProject; +import org.eclipse.wst.jsdt.core.IJavaScriptUnit; import org.eclipse.wst.jsdt.core.IPackageFragment; import org.eclipse.wst.jsdt.core.JavaScriptModelException; import org.eclipse.wst.jsdt.core.dom.AST; import org.eclipse.wst.jsdt.core.dom.ASTNode; import org.eclipse.wst.jsdt.core.dom.ASTVisitor; import org.eclipse.wst.jsdt.core.dom.AbstractTypeDeclaration; -import org.eclipse.wst.jsdt.core.dom.AnnotationTypeDeclaration; -import org.eclipse.wst.jsdt.core.dom.AnnotationTypeMemberDeclaration; import org.eclipse.wst.jsdt.core.dom.AnonymousClassDeclaration; import org.eclipse.wst.jsdt.core.dom.ArrayAccess; import org.eclipse.wst.jsdt.core.dom.ArrayCreation; @@ -35,12 +33,12 @@ import org.eclipse.wst.jsdt.core.dom.CastExpression; import org.eclipse.wst.jsdt.core.dom.CharacterLiteral; import org.eclipse.wst.jsdt.core.dom.ClassInstanceCreation; -import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit; import org.eclipse.wst.jsdt.core.dom.ConditionalExpression; import org.eclipse.wst.jsdt.core.dom.ConstructorInvocation; -import org.eclipse.wst.jsdt.core.dom.EnumConstantDeclaration; -import org.eclipse.wst.jsdt.core.dom.EnumDeclaration; import org.eclipse.wst.jsdt.core.dom.FieldAccess; +import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration; +import org.eclipse.wst.jsdt.core.dom.FunctionInvocation; +import org.eclipse.wst.jsdt.core.dom.FunctionRef; import org.eclipse.wst.jsdt.core.dom.IBinding; import org.eclipse.wst.jsdt.core.dom.IFunctionBinding; import org.eclipse.wst.jsdt.core.dom.IPackageBinding; @@ -49,11 +47,9 @@ import org.eclipse.wst.jsdt.core.dom.ImportDeclaration; import org.eclipse.wst.jsdt.core.dom.InfixExpression; import org.eclipse.wst.jsdt.core.dom.InstanceofExpression; +import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit; import org.eclipse.wst.jsdt.core.dom.ListExpression; import org.eclipse.wst.jsdt.core.dom.MemberRef; -import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration; -import org.eclipse.wst.jsdt.core.dom.FunctionInvocation; -import org.eclipse.wst.jsdt.core.dom.FunctionRef; import org.eclipse.wst.jsdt.core.dom.NullLiteral; import org.eclipse.wst.jsdt.core.dom.NumberLiteral; import org.eclipse.wst.jsdt.core.dom.PackageDeclaration; @@ -98,23 +94,6 @@ } } - /** - * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(AnnotationTypeDeclaration) - * @since 3.0 - */ - public void endVisit(AnnotationTypeDeclaration node) { - ITypeBinding typeBinding = node.resolveBinding(); - collectBindings(node, typeBinding); - } - - /** - * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(AnnotationTypeMemberDeclaration) - * @since 3.0 - */ - public void endVisit(AnnotationTypeMemberDeclaration node) { - IFunctionBinding binding = node.resolveBinding(); - collectBindings(node, binding); - } /** * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(AnonymousClassDeclaration) @@ -213,24 +192,6 @@ } /** - * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(EnumConstantDeclaration) - * @since 3.0 - */ - public void endVisit(EnumConstantDeclaration node) { - IVariableBinding binding = node.resolveVariable(); - collectBindings(node, binding); - } - - /** - * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(EnumDeclaration) - * @since 3.0 - */ - public void endVisit(EnumDeclaration node) { - ITypeBinding typeBinding = node.resolveBinding(); - collectBindings(node, typeBinding); - } - - /** * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(FieldAccess) */ public void endVisit(FieldAccess node) {
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterJavadocTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterJavadocTest.java index 53d8fa7..b08d9b6 100644 --- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterJavadocTest.java +++ b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterJavadocTest.java
@@ -10,7 +10,8 @@ *******************************************************************************/ package org.eclipse.wst.jsdt.core.tests.dom; -import java.io.*; +import java.io.File; +import java.io.IOException; import java.lang.reflect.Method; import java.text.NumberFormat; import java.util.ArrayList; @@ -22,12 +23,45 @@ import junit.framework.TestSuite; import org.eclipse.core.runtime.CoreException; -import org.eclipse.wst.jsdt.core.IJavaScriptUnit; import org.eclipse.wst.jsdt.core.IJavaScriptProject; +import org.eclipse.wst.jsdt.core.IJavaScriptUnit; import org.eclipse.wst.jsdt.core.JavaScriptCore; import org.eclipse.wst.jsdt.core.JavaScriptModelException; import org.eclipse.wst.jsdt.core.compiler.IProblem; -import org.eclipse.wst.jsdt.core.dom.*; +import org.eclipse.wst.jsdt.core.dom.AST; +import org.eclipse.wst.jsdt.core.dom.ASTNode; +import org.eclipse.wst.jsdt.core.dom.ASTParser; +import org.eclipse.wst.jsdt.core.dom.ArrayType; +import org.eclipse.wst.jsdt.core.dom.Block; +import org.eclipse.wst.jsdt.core.dom.Comment; +import org.eclipse.wst.jsdt.core.dom.Expression; +import org.eclipse.wst.jsdt.core.dom.ExpressionStatement; +import org.eclipse.wst.jsdt.core.dom.FieldDeclaration; +import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration; +import org.eclipse.wst.jsdt.core.dom.FunctionInvocation; +import org.eclipse.wst.jsdt.core.dom.FunctionRef; +import org.eclipse.wst.jsdt.core.dom.FunctionRefParameter; +import org.eclipse.wst.jsdt.core.dom.IBinding; +import org.eclipse.wst.jsdt.core.dom.ITypeBinding; +import org.eclipse.wst.jsdt.core.dom.IfStatement; +import org.eclipse.wst.jsdt.core.dom.JSdoc; +import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit; +import org.eclipse.wst.jsdt.core.dom.MemberRef; +import org.eclipse.wst.jsdt.core.dom.Name; +import org.eclipse.wst.jsdt.core.dom.PackageDeclaration; +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.Statement; +import org.eclipse.wst.jsdt.core.dom.TagElement; +import org.eclipse.wst.jsdt.core.dom.TextElement; +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.VariableDeclarationFragment; +import org.eclipse.wst.jsdt.core.dom.VariableDeclarationStatement; import org.eclipse.wst.jsdt.internal.compiler.parser.ScannerHelper; public class ASTConverterJavadocTest extends ConverterTestSetup { @@ -2788,46 +2822,6 @@ } } - /** - * Bug 94150: [javadoc][dom] Extended ranges wrong for method name without return type - * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=94150" - */ - public void testBug94150() throws JavaScriptModelException { - workingCopies = new IJavaScriptUnit[1]; - astLevel = AST.JLS3; - workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b94150/Category.js", - "package javadoc.b94150;\n" + - "public enum Category {\n" + - " /**\n" + - " * history style\n" + - " * @see Object\n" + - " */ \n" + - " HISTORY,\n" + - "\n" + - " /**\n" + - " * war style\n" + - " */ \n" + - " WAR;\n" + - "}\n" - ); - JavaScriptUnit compilUnit = verifyComments(workingCopies[0]); - if (docCommentSupport.equals(JavaScriptCore.ENABLED)) { - // Get enum declaration - ASTNode node = getASTNode(compilUnit, 0); - assertEquals("Expected enum declaration.", ASTNode.ENUM_DECLARATION, node.getNodeType()); - EnumDeclaration enumDeclaration = (EnumDeclaration) node; - - // Verify each enum constant javadoc - List constants = enumDeclaration.enumConstants(); - int size = constants.size(); - assertEquals("Wrong number of constants", 2, size); - for (int i=0; i<size; i++) { - EnumConstantDeclaration constant = (EnumConstantDeclaration) constants.get(i); - JSdoc docComment = (JSdoc) compilUnit.getCommentList().get(i); // Do not need to verify following statement as we know it's ok as verifyComments did not fail - assertTrue("Javadoc should be set on first enum constant", docComment == constant.getJavadoc()); - } - } - } /** * Bug 99507: [javadoc] Infinit loop in DocCommentParser @@ -3416,60 +3410,4 @@ } } - /** - * @bug 165525: [comments] ASTParser excludes trailing line comments from extended range of fields in enums - * @test Ensure that extended ranges are correct for enum constants and last comments of enum declaration - * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=165525" - */ - public void testBug165525() throws JavaScriptModelException { - workingCopies = new IJavaScriptUnit[1]; - workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b165525/Test.js", - "package javadoc.b165525;\n" + - "public enum Test {\n" + - " ENUM_CONST_1(\"String constant 1\") //$NON-NLS-1$\n" + - " , ENUM_CONST_2(\"String constant 2\") //$NON-NLS-1$\n" + - " ;\n" + - " Test(String x) {\n" + - " }\n" + - " String a = \"a\"; //$NON-NLS-1$\n" + - " String b = \"b\"; //$NON-NLS-1$\n" + - "}\n" - ); - JavaScriptUnit compilUnit = (JavaScriptUnit) runConversion(AST.JLS3, workingCopies[0], true); - verifyWorkingCopiesComments(); - if (docCommentSupport.equals(JavaScriptCore.ENABLED)) { - // Verify comment type - List unitComments = compilUnit.getCommentList(); - assertEquals("Wrong number of comments", 4, unitComments.size()); - - // Verify extension of first enum declaration constant - Comment comment = (Comment) unitComments.get(0); - EnumDeclaration enumDeclaration = (EnumDeclaration) compilUnit.types().get(0); - EnumConstantDeclaration constantDeclaration = (EnumConstantDeclaration) enumDeclaration.enumConstants().get(0); - int declarationEnd = constantDeclaration.getStartPosition() + compilUnit.getExtendedLength(constantDeclaration) - 1; - int commentEnd = comment.getStartPosition() + comment.getLength() - 1; - assumeEquals("Enum constant declaration "+constantDeclaration+" does not have the correct length", commentEnd, declarationEnd); - - // Verify extension of second enum declaration constant - comment = (Comment) unitComments.get(1); - constantDeclaration = (EnumConstantDeclaration) enumDeclaration.enumConstants().get(1); - declarationEnd = constantDeclaration.getStartPosition() + compilUnit.getExtendedLength(constantDeclaration) - 1; - commentEnd = comment.getStartPosition() + comment.getLength() - 1; - assumeEquals("Enum constant declaration "+constantDeclaration+" does not have the correct length", commentEnd, declarationEnd); - - // Verify extension of first field declaration - comment = (Comment) unitComments.get(2); - FieldDeclaration fieldDeclaration = (FieldDeclaration) enumDeclaration.bodyDeclarations().get(1); - declarationEnd = fieldDeclaration.getStartPosition() + compilUnit.getExtendedLength(fieldDeclaration) - 1; - commentEnd = comment.getStartPosition() + comment.getLength() - 1; - assumeEquals("Enum constant declaration "+constantDeclaration+" does not have the correct length", commentEnd, declarationEnd); - - // Verify extension of second field declaration - comment = (Comment) unitComments.get(3); - fieldDeclaration = (FieldDeclaration) enumDeclaration.bodyDeclarations().get(2); - declarationEnd = fieldDeclaration.getStartPosition() + compilUnit.getExtendedLength(fieldDeclaration) - 1; - commentEnd = comment.getStartPosition() + comment.getLength() - 1; - assumeEquals("Enum constant declaration "+constantDeclaration+" does not have the correct length", commentEnd, declarationEnd); - } - } }
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTMatcherTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTMatcherTest.java index db6bf21..245e4ad 100644 --- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTMatcherTest.java +++ b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTMatcherTest.java
@@ -14,8 +14,88 @@ import java.lang.reflect.Method; import junit.framework.Test; -import org.eclipse.wst.jsdt.core.dom.*; + +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.ASTVisitor; +import org.eclipse.wst.jsdt.core.dom.AnonymousClassDeclaration; +import org.eclipse.wst.jsdt.core.dom.ArrayAccess; +import org.eclipse.wst.jsdt.core.dom.ArrayCreation; +import org.eclipse.wst.jsdt.core.dom.ArrayInitializer; +import org.eclipse.wst.jsdt.core.dom.ArrayType; +import org.eclipse.wst.jsdt.core.dom.AssertStatement; +import org.eclipse.wst.jsdt.core.dom.Assignment; +import org.eclipse.wst.jsdt.core.dom.Block; +import org.eclipse.wst.jsdt.core.dom.BlockComment; +import org.eclipse.wst.jsdt.core.dom.BooleanLiteral; +import org.eclipse.wst.jsdt.core.dom.BreakStatement; +import org.eclipse.wst.jsdt.core.dom.CastExpression; +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.ConditionalExpression; +import org.eclipse.wst.jsdt.core.dom.ConstructorInvocation; +import org.eclipse.wst.jsdt.core.dom.ContinueStatement; +import org.eclipse.wst.jsdt.core.dom.DoStatement; +import org.eclipse.wst.jsdt.core.dom.EmptyStatement; +import org.eclipse.wst.jsdt.core.dom.EnhancedForStatement; +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.FunctionRef; +import org.eclipse.wst.jsdt.core.dom.FunctionRefParameter; +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.JSdoc; +import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit; +import org.eclipse.wst.jsdt.core.dom.LabeledStatement; +import org.eclipse.wst.jsdt.core.dom.LineComment; +import org.eclipse.wst.jsdt.core.dom.MemberRef; +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.NumberLiteral; +import org.eclipse.wst.jsdt.core.dom.PackageDeclaration; +import org.eclipse.wst.jsdt.core.dom.ParameterizedType; +import org.eclipse.wst.jsdt.core.dom.ParenthesizedExpression; +import org.eclipse.wst.jsdt.core.dom.PostfixExpression; +import org.eclipse.wst.jsdt.core.dom.PrefixExpression; +import org.eclipse.wst.jsdt.core.dom.PrimitiveType; +import org.eclipse.wst.jsdt.core.dom.QualifiedName; +import org.eclipse.wst.jsdt.core.dom.QualifiedType; +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.SuperConstructorInvocation; +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.TagElement; +import org.eclipse.wst.jsdt.core.dom.TextElement; +import org.eclipse.wst.jsdt.core.dom.ThisExpression; +import org.eclipse.wst.jsdt.core.dom.ThrowStatement; +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.TypeLiteral; +import org.eclipse.wst.jsdt.core.dom.TypeParameter; +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.dom.WildcardType; /** * Test suite for <code>ASTMatcher</code> and <code>ASTNode.subtreeMatch</code>. @@ -81,14 +161,8 @@ FunctionRefParameter MPARM1; LineComment LC1; BlockComment BC1; - MemberValuePair MVP1; - MemberValuePair MVP2; - MarkerAnnotation ANO1; - SingleMemberAnnotation ANO2; Modifier MOD1; Modifier MOD2; - EnumConstantDeclaration EC1; - EnumConstantDeclaration EC2; final StringBuffer b = new StringBuffer(); @@ -196,28 +270,10 @@ TP2S = "[(tTP[(nSyynS)]tTP)]"; //$NON-NLS-1$ LC1 = ast.newLineComment(); - MVP1 = ast.newMemberValuePair(); - MVP1.setName(ast.newSimpleName("x")); //$NON-NLS-1$ - MVP1.setValue(ast.newSimpleName("y")); //$NON-NLS-1$ - - MVP2 = ast.newMemberValuePair(); - MVP2.setName(ast.newSimpleName("a")); //$NON-NLS-1$ - MVP2.setValue(ast.newSimpleName("b")); //$NON-NLS-1$ - - ANO1 = ast.newMarkerAnnotation(); - ANO1.setTypeName(ast.newSimpleName("p")); //$NON-NLS-1$ - - ANO2 = ast.newSingleMemberAnnotation(); - ANO2.setTypeName(ast.newSimpleName("q")); //$NON-NLS-1$ - ANO2.setValue(ast.newSimpleName("v")); //$NON-NLS-1$ MOD1 = ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD); MOD2 = ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD); - EC1 = ast.newEnumConstantDeclaration(); - EC1.setName(ast.newSimpleName("F")); //$NON-NLS-1$ - EC2 = ast.newEnumConstantDeclaration(); - EC2.setName(ast.newSimpleName("G")); //$NON-NLS-1$ } } @@ -274,12 +330,6 @@ return this.result; } - public boolean match(AnnotationTypeDeclaration node, Object other) { - return standardBody(node, other, superMatch ? super.match(node, other) : false); - } - public boolean match(AnnotationTypeMemberDeclaration node, Object other) { - return standardBody(node, other, superMatch ? super.match(node, other) : false); - } public boolean match(AnonymousClassDeclaration node, Object other) { return standardBody(node, other, superMatch ? super.match(node, other) : false); } @@ -346,12 +396,6 @@ public boolean match(EnhancedForStatement node, Object other) { return standardBody(node, other, superMatch ? super.match(node, other) : false); } - public boolean match(EnumConstantDeclaration node, Object other) { - return standardBody(node, other, superMatch ? super.match(node, other) : false); - } - public boolean match(EnumDeclaration node, Object other) { - return standardBody(node, other, superMatch ? super.match(node, other) : false); - } public boolean match(ExpressionStatement node, Object other) { return standardBody(node, other, superMatch ? super.match(node, other) : false); } @@ -385,15 +429,9 @@ public boolean match(LineComment node, Object other) { return standardBody(node, other, superMatch ? super.match(node, other) : false); } - public boolean match(MarkerAnnotation node, Object other) { - return standardBody(node, other, superMatch ? super.match(node, other) : false); - } public boolean match(MemberRef node, Object other) { return standardBody(node, other, superMatch ? super.match(node, other) : false); } - public boolean match(MemberValuePair node, Object other) { - return standardBody(node, other, superMatch ? super.match(node, other) : false); - } public boolean match(FunctionDeclaration node, Object other) { return standardBody(node, other, superMatch ? super.match(node, other) : false); } @@ -409,9 +447,6 @@ public boolean match(Modifier node, Object other) { return standardBody(node, other, superMatch ? super.match(node, other) : false); } - public boolean match(NormalAnnotation node, Object other) { - return standardBody(node, other, superMatch ? super.match(node, other) : false); - } public boolean match(NullLiteral node, Object other) { return standardBody(node, other, superMatch ? super.match(node, other) : false); } @@ -451,9 +486,6 @@ public boolean match(SimpleType node, Object other) { return standardBody(node, other, superMatch ? super.match(node, other) : false); } - public boolean match(SingleMemberAnnotation node, Object other) { - return standardBody(node, other, superMatch ? super.match(node, other) : false); - } public boolean match(SingleVariableDeclaration node, Object other) { return standardBody(node, other, superMatch ? super.match(node, other) : false); } @@ -824,40 +856,6 @@ x1.setBody(S1); basicMatch(x1); } - /** @deprecated Only to suppress warnings for refs to bodyDeclarations. */ - // TODO (jeem) - remove deprecation after 3.1 M4 - public void testEnumConstantDeclaration() { - if (ast.apiLevel() == AST.JLS2) { - return; - } - EnumConstantDeclaration x1 = ast.newEnumConstantDeclaration(); - x1.setJavadoc(JD1); - x1.modifiers().add(MOD1); - x1.modifiers().add(MOD2); - x1.setName(N1); - x1.arguments().add(E1); - x1.arguments().add(E2); - x1.setAnonymousClassDeclaration(ACD1); - basicMatch(x1); - } - /** @deprecated using deprecated code */ - public void testEnumDeclaration() { - if (ast.apiLevel() == AST.JLS2) { - return; - } - EnumDeclaration x1 = ast.newEnumDeclaration(); - x1.setJavadoc(JD1); - x1.modifiers().add(MOD1); - x1.modifiers().add(MOD2); - x1.setName(N1); - x1.superInterfaceTypes().add(T1); - x1.superInterfaceTypes().add(T2); - x1.enumConstants().add(EC1); - x1.enumConstants().add(EC2); - x1.bodyDeclarations().add(FD1); - x1.bodyDeclarations().add(FD2); - basicMatch(x1); - } public void testExpressionStatement() { ExpressionStatement x1 = ast.newExpressionStatement(E1); basicMatch(x1); @@ -1009,15 +1007,6 @@ NumberLiteral x1 = ast.newNumberLiteral("1.0"); //$NON-NLS-1$ basicMatch(x1); } - public void testPackageDeclaration() { - PackageDeclaration x1 = ast.newPackageDeclaration(); - if (ast.apiLevel() >= AST.JLS3) { - x1.setJavadoc(JD1); - x1.annotations().add(ANO1); - x1.annotations().add(ANO2); - } - basicMatch(x1); - } public void testParenthesizedExpression() { ParenthesizedExpression x1 = ast.newParenthesizedExpression(); basicMatch(x1); @@ -1209,68 +1198,5 @@ basicMatch(x1); } - // annotation-related - /** @deprecated using deprecated code */ - public void testAnnotationTypeDeclaration() { - if (ast.apiLevel() == AST.JLS2) { - return; - } - AnnotationTypeDeclaration x1 = ast.newAnnotationTypeDeclaration(); - x1.setJavadoc(JD1); - x1.modifiers().add(MOD1); - x1.modifiers().add(MOD2); - x1.setName(N1); - x1.bodyDeclarations().add(FD1); - x1.bodyDeclarations().add(FD2); - basicMatch(x1); - } - - /** @deprecated using deprecated code */ - public void testAnnotationTypeMemberDeclaration() { - if (ast.apiLevel() == AST.JLS2) { - return; - } - AnnotationTypeMemberDeclaration x1 = ast.newAnnotationTypeMemberDeclaration(); - x1.setJavadoc(JD1); - x1.modifiers().add(MOD1); - x1.modifiers().add(MOD2); - x1.setType(T1); - x1.setName(N1); - x1.setDefault(E1); - basicMatch(x1); - } - - /** @deprecated using deprecated code */ - public void testNormalAnnotation() { - if (ast.apiLevel() == AST.JLS2) { - return; - } - NormalAnnotation x1 = ast.newNormalAnnotation(); - x1.setTypeName(N1); - x1.values().add(MVP1); - x1.values().add(MVP2); - basicMatch(x1); - } - - /** @deprecated using deprecated code */ - public void testMarkerAnnotation() { - if (ast.apiLevel() == AST.JLS2) { - return; - } - MarkerAnnotation x1 = ast.newMarkerAnnotation(); - x1.setTypeName(N1); - basicMatch(x1); - } - - /** @deprecated using deprecated code */ - public void testSingleMemberAnnotation() { - if (ast.apiLevel() == AST.JLS2) { - return; - } - SingleMemberAnnotation x1 = ast.newSingleMemberAnnotation(); - x1.setTypeName(N1); - x1.setValue(E1); - basicMatch(x1); - } }
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTNodesCollectorVisitor.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTNodesCollectorVisitor.java index 9247e8e..2b9ec0e 100644 --- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTNodesCollectorVisitor.java +++ b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTNodesCollectorVisitor.java
@@ -14,8 +14,31 @@ import java.util.List; import java.util.Set; -import org.eclipse.wst.jsdt.core.dom.*; +import org.eclipse.wst.jsdt.core.dom.AST; +import org.eclipse.wst.jsdt.core.dom.ASTNode; import org.eclipse.wst.jsdt.core.dom.ASTVisitor; +import org.eclipse.wst.jsdt.core.dom.AnonymousClassDeclaration; +import org.eclipse.wst.jsdt.core.dom.ClassInstanceCreation; +import org.eclipse.wst.jsdt.core.dom.FieldAccess; +import org.eclipse.wst.jsdt.core.dom.FieldDeclaration; +import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration; +import org.eclipse.wst.jsdt.core.dom.FunctionInvocation; +import org.eclipse.wst.jsdt.core.dom.FunctionRef; +import org.eclipse.wst.jsdt.core.dom.ImportDeclaration; +import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit; +import org.eclipse.wst.jsdt.core.dom.MemberRef; +import org.eclipse.wst.jsdt.core.dom.PackageDeclaration; +import org.eclipse.wst.jsdt.core.dom.QualifiedName; +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.SuperFieldAccess; +import org.eclipse.wst.jsdt.core.dom.SuperMethodInvocation; +import org.eclipse.wst.jsdt.core.dom.ThisExpression; +import org.eclipse.wst.jsdt.core.dom.TypeDeclaration; +import org.eclipse.wst.jsdt.core.dom.VariableDeclarationExpression; +import org.eclipse.wst.jsdt.core.dom.VariableDeclarationFragment; +import org.eclipse.wst.jsdt.core.dom.VariableDeclarationStatement; class ASTNodesCollectorVisitor extends ASTVisitor { @@ -34,24 +57,6 @@ private void add(ASTNode node) { this.detachedAstNodes.add(node); } - - /** - * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(AnnotationTypeDeclaration) - * @since 3.0 - */ - public void endVisit(AnnotationTypeDeclaration node) { - add(node); - node.setName(node.getAST().newSimpleName("XXX")); //$NON-NLS-1$ - detachedListElement(node.bodyDeclarations()); - } - - /** - * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(AnnotationTypeMemberDeclaration) - * @since 3.0 - */ - public void endVisit(AnnotationTypeMemberDeclaration node) { - node.setName(node.getAST().newSimpleName("XXX")); //$NON-NLS-1$ - } /** * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(org.eclipse.wst.jsdt.core.dom.AnonymousClassDeclaration) @@ -86,25 +91,6 @@ node.setPackage(node.getAST().newPackageDeclaration()); } - /** - * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(EnumConstantDeclaration) - * @since 3.0 - */ - public void endVisit(EnumConstantDeclaration node) { - add(node); - node.setName(node.getAST().newSimpleName("XXX")); //$NON-NLS-1$ - detachedListElement(node.getAnonymousClassDeclaration().bodyDeclarations()); - } - - /** - * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(EnumDeclaration) - * @since 3.0 - */ - public void endVisit(EnumDeclaration node) { - add(node); - node.setName(node.getAST().newSimpleName("XXX")); //$NON-NLS-1$ - detachedListElement(node.bodyDeclarations()); - } /** * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(org.eclipse.wst.jsdt.core.dom.FieldAccess)
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTTest.java index 6fce504..675a381 100644 --- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTTest.java +++ b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTTest.java
@@ -17,12 +17,96 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; -import java.util.Map; - import junit.framework.Test; -import org.eclipse.wst.jsdt.core.dom.*; + +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.ASTVisitor; +import org.eclipse.wst.jsdt.core.dom.AbstractTypeDeclaration; +import org.eclipse.wst.jsdt.core.dom.AnonymousClassDeclaration; +import org.eclipse.wst.jsdt.core.dom.ArrayAccess; +import org.eclipse.wst.jsdt.core.dom.ArrayCreation; +import org.eclipse.wst.jsdt.core.dom.ArrayInitializer; +import org.eclipse.wst.jsdt.core.dom.ArrayType; +import org.eclipse.wst.jsdt.core.dom.AssertStatement; +import org.eclipse.wst.jsdt.core.dom.Assignment; +import org.eclipse.wst.jsdt.core.dom.Block; +import org.eclipse.wst.jsdt.core.dom.BlockComment; +import org.eclipse.wst.jsdt.core.dom.BodyDeclaration; +import org.eclipse.wst.jsdt.core.dom.BooleanLiteral; +import org.eclipse.wst.jsdt.core.dom.BreakStatement; +import org.eclipse.wst.jsdt.core.dom.CastExpression; +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.Comment; +import org.eclipse.wst.jsdt.core.dom.ConditionalExpression; +import org.eclipse.wst.jsdt.core.dom.ConstructorInvocation; +import org.eclipse.wst.jsdt.core.dom.ContinueStatement; +import org.eclipse.wst.jsdt.core.dom.DoStatement; +import org.eclipse.wst.jsdt.core.dom.EmptyStatement; +import org.eclipse.wst.jsdt.core.dom.EnhancedForStatement; +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.FunctionRef; +import org.eclipse.wst.jsdt.core.dom.FunctionRefParameter; +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.JSdoc; +import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit; +import org.eclipse.wst.jsdt.core.dom.LabeledStatement; +import org.eclipse.wst.jsdt.core.dom.LineComment; +import org.eclipse.wst.jsdt.core.dom.MemberRef; +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.NumberLiteral; +import org.eclipse.wst.jsdt.core.dom.PackageDeclaration; +import org.eclipse.wst.jsdt.core.dom.ParameterizedType; +import org.eclipse.wst.jsdt.core.dom.ParenthesizedExpression; +import org.eclipse.wst.jsdt.core.dom.PostfixExpression; +import org.eclipse.wst.jsdt.core.dom.PrefixExpression; +import org.eclipse.wst.jsdt.core.dom.PrimitiveType; +import org.eclipse.wst.jsdt.core.dom.QualifiedName; +import org.eclipse.wst.jsdt.core.dom.QualifiedType; +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.SuperConstructorInvocation; +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.TagElement; +import org.eclipse.wst.jsdt.core.dom.TextElement; +import org.eclipse.wst.jsdt.core.dom.ThisExpression; +import org.eclipse.wst.jsdt.core.dom.ThrowStatement; +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.TypeLiteral; +import org.eclipse.wst.jsdt.core.dom.TypeParameter; +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.dom.WildcardType; // testing @@ -48,23 +132,6 @@ } } - /** - * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(AnnotationTypeDeclaration, Object) - * @since 3.0 - */ - public boolean match(AnnotationTypeDeclaration node, Object other) { - checkPositions(node, other); - return super.match(node, other); - } - - /** - * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(AnnotationTypeMemberDeclaration, Object) - * @since 3.0 - */ - public boolean match(AnnotationTypeMemberDeclaration node, Object other) { - checkPositions(node, other); - return super.match(node, other); - } /** * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(AnonymousClassDeclaration, Object) @@ -243,16 +310,7 @@ checkPositions(node, other); return super.match(node, other); } - - /** - * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(EnumConstantDeclaration, Object) - * @since 3.0 - */ - public boolean match(EnumConstantDeclaration node, Object other) { - checkPositions(node, other); - return super.match(node, other); - } - + /** * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(ExpressionStatement, Object) */ @@ -349,15 +407,7 @@ checkPositions(node, other); return super.match(node, other); } - - /** - * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(MarkerAnnotation, Object) - * @since 3.0 - */ - public boolean match(MarkerAnnotation node, Object other) { - checkPositions(node, other); - return super.match(node, other); - } + /** * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(MemberRef, Object) @@ -368,14 +418,7 @@ return super.match(node, other); } - /** - * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(MemberValuePair, Object) - * @since 3.0 - */ - public boolean match(MemberValuePair node, Object other) { - checkPositions(node, other); - return super.match(node, other); - } + /** * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(FunctionDeclaration, Object) @@ -420,14 +463,6 @@ return super.match(node, other); } - /** - * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(NormalAnnotation, Object) - * @since 3.0 - */ - public boolean match(NormalAnnotation node, Object other) { - checkPositions(node, other); - return super.match(node, other); - } /** * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(NullLiteral, Object) @@ -536,15 +571,6 @@ } /** - * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(SingleMemberAnnotation, Object) - * @since 3.0 - */ - public boolean match(SingleMemberAnnotation node, Object other) { - checkPositions(node, other); - return super.match(node, other); - } - - /** * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(SingleVariableDeclaration, Object) */ public boolean match(SingleVariableDeclaration node, Object other) { @@ -1477,22 +1503,7 @@ fd.setName(ast.newSimpleName("b")); //$NON-NLS-1$ assertTrue(x.isDeclaration() == false); - if (ast.apiLevel() >= AST.JLS3) { - AnnotationTypeDeclaration atd = ast.newAnnotationTypeDeclaration(); - atd.setName(x); - assertTrue(x.isDeclaration() == true); - atd.setName(ast.newSimpleName("b")); //$NON-NLS-1$ - assertTrue(x.isDeclaration() == false); - } - - if (ast.apiLevel() >= AST.JLS3) { - AnnotationTypeMemberDeclaration atmd = ast.newAnnotationTypeMemberDeclaration(); - atmd.setName(x); - assertTrue(x.isDeclaration() == true); - atmd.setName(ast.newSimpleName("b")); //$NON-NLS-1$ - assertTrue(x.isDeclaration() == false); - } - + } public void testQualifiedName() { @@ -2324,16 +2335,7 @@ } }); - genericPropertyListTest(x, x.annotations(), new Property("Annotations", true, Annotation.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - MarkerAnnotation result = targetAst.newMarkerAnnotation(); - if (parented) { - PackageDeclaration pd = targetAst.newPackageDeclaration(); - pd.annotations().add(result); - } - return result; - } - }); + } genericPropertyTest(x, new Property("Name", true, Name.class) { //$NON-NLS-1$ @@ -2573,7 +2575,6 @@ } tJavadocComment(x); - tModifiers(x); genericPropertyTest(x, new Property("Name", true, SimpleName.class) { //$NON-NLS-1$ public ASTNode sample(AST targetAst, boolean parented) { @@ -2697,14 +2698,6 @@ TypeDeclaration t1 = ast.newTypeDeclaration(); TypeDeclaration t2 = ast.newTypeDeclaration(); - EnumConstantDeclaration c1 = null; - EnumConstantDeclaration c2 = null; - if (ast.apiLevel() >= AST.JLS3) { - c1 = ast.newEnumConstantDeclaration(); - c2 = ast.newEnumConstantDeclaration(); - x.bodyDeclarations().add(c1); - x.bodyDeclarations().add(c2); - } x.bodyDeclarations().add(ast.newInitializer()); x.bodyDeclarations().add(f1); @@ -2742,250 +2735,6 @@ } - /** @deprecated using deprecated code */ - public void testEnumDeclaration() { - if (ast.apiLevel() == AST.JLS2) { - // node type introduced in 3.0 API - try { - ast.newEnumDeclaration(); - assertTrue(false); - } catch (UnsupportedOperationException e) { - // pass - } - return; - } - long previousCount = ast.modificationCount(); - final EnumDeclaration x = ast.newEnumDeclaration(); - assertTrue(ast.modificationCount() > previousCount); - previousCount = ast.modificationCount(); - assertTrue(x.getAST() == ast); - assertTrue(x.getParent() == null); - assertTrue(x.modifiers().size() == 0); - assertTrue(x.getName().getParent() == x); - assertTrue(x.getName().isDeclaration() == true); - assertTrue(x.getJavadoc() == null); - assertTrue(x.superInterfaceTypes().size() == 0); - assertTrue(x.enumConstants().size()== 0); - assertTrue(x.bodyDeclarations().size()== 0); - assertTrue(x.getNodeType() == ASTNode.ENUM_DECLARATION); - assertTrue(x.structuralPropertiesForType() == EnumDeclaration.propertyDescriptors(ast.apiLevel())); - // make sure that reading did not change modification count - assertTrue(ast.modificationCount() == previousCount); - - previousCount = ast.modificationCount(); - - tJavadocComment(x); - tModifiers(x); - - genericPropertyTest(x, new Property("Name", true, SimpleName.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - SimpleName result = targetAst.newSimpleName("foo"); //$NON-NLS-1$ - if (parented) { - targetAst.newExpressionStatement(result); - } - return result; - } - public ASTNode get() { - return x.getName(); - } - public void set(ASTNode value) { - x.setName((SimpleName) value); - } - }); - - genericPropertyListTest(x, x.superInterfaceTypes(), - new Property("SuperInterfaceTypes", true, Type.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - SimpleType result = targetAst.newSimpleType(targetAst.newSimpleName("foo")); //$NON-NLS-1$ - if (parented) { - targetAst.newArrayType(result); - } - return result; - } - }); - - genericPropertyListTest(x, x.enumConstants(), - new Property("EnumConstants", true, EnumConstantDeclaration.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - EnumConstantDeclaration result = targetAst.newEnumConstantDeclaration(); - if (parented) { - // use fact that EnumConstantDeclaration is also a BodyDeclaration - TypeDeclaration d = targetAst.newTypeDeclaration(); - d.bodyDeclarations().add(result); - } - return result; - } - public ASTNode wrap() { - EnumConstantDeclaration s1 = x.getAST().newEnumConstantDeclaration(); - AnonymousClassDeclaration anonymousClassDeclaration = x.getAST().newAnonymousClassDeclaration(); - s1.setAnonymousClassDeclaration(anonymousClassDeclaration); - anonymousClassDeclaration.bodyDeclarations().add(x); - return s1; - } - public void unwrap() { - AnonymousClassDeclaration anonymousClassDeclaration = (AnonymousClassDeclaration) x.getParent(); - if (anonymousClassDeclaration != null) { - anonymousClassDeclaration.bodyDeclarations().remove(x); - } - } - }); - - genericPropertyListTest(x, x.bodyDeclarations(), - new Property("BodyDeclarations", true, BodyDeclaration.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - TypeDeclaration result = targetAst.newTypeDeclaration(); - if (parented) { - JavaScriptUnit cu = targetAst.newJavaScriptUnit(); - cu.types().add(result); - } - return result; - } - public ASTNode wrap() { - TypeDeclaration s1 = x.getAST().newTypeDeclaration(); - s1.bodyDeclarations().add(x); - return s1; - } - public void unwrap() { - TypeDeclaration s1 = (TypeDeclaration) x.getParent(); - s1.bodyDeclarations().remove(x); - } - }); - - // check special bodyDeclaration methods - x.bodyDeclarations().clear(); - EnumConstantDeclaration c1 = ast.newEnumConstantDeclaration(); - EnumConstantDeclaration c2 = ast.newEnumConstantDeclaration(); - FieldDeclaration f1 = ast.newFieldDeclaration(ast.newVariableDeclarationFragment()); - FieldDeclaration f2 = ast.newFieldDeclaration(ast.newVariableDeclarationFragment()); - FunctionDeclaration m1 = ast.newFunctionDeclaration(); - FunctionDeclaration m2 = ast.newFunctionDeclaration(); - TypeDeclaration t1 = ast.newTypeDeclaration(); - TypeDeclaration t2 = ast.newTypeDeclaration(); - - x.enumConstants().add(c1); - x.enumConstants().add(c2); - x.bodyDeclarations().add(f1); - x.bodyDeclarations().add(f2); - x.bodyDeclarations().add(m1); - x.bodyDeclarations().add(m2); - x.bodyDeclarations().add(t1); - x.bodyDeclarations().add(t2); - - // check that TypeDeclarations in body are classified correctly - assertTrue(t1.isLocalTypeDeclaration() == false); - assertTrue(t1.isMemberTypeDeclaration() == true); - assertTrue(t1.isPackageMemberTypeDeclaration() == false); - - } - - /** @deprecated using deprecated code */ - public void testEnumConstantDeclaration() { - if (ast.apiLevel() == AST.JLS2) { - // node type introduced in 3.0 API - try { - ast.newEnumConstantDeclaration(); - assertTrue(false); - } catch (UnsupportedOperationException e) { - // pass - } - return; - } - long previousCount = ast.modificationCount(); - final EnumConstantDeclaration x = ast.newEnumConstantDeclaration(); - assertTrue(ast.modificationCount() > previousCount); - previousCount = ast.modificationCount(); - assertTrue(x.getAST() == ast); - assertTrue(x.getParent() == null); - assertTrue(x.getName().getParent() == x); - assertTrue(x.getName().isDeclaration() == true); - assertTrue(x.getJavadoc() == null); - assertTrue(x.arguments().size()== 0); - assertTrue(x.getAnonymousClassDeclaration() == null); - assertTrue(x.modifiers().size() == 0); - assertTrue(x.getNodeType() == ASTNode.ENUM_CONSTANT_DECLARATION); - assertTrue(x.structuralPropertiesForType() == EnumConstantDeclaration.propertyDescriptors(ast.apiLevel())); - // make sure that reading did not change modification count - assertTrue(ast.modificationCount() == previousCount); - - tJavadocComment(x); - tModifiers(x); - - genericPropertyTest(x, new Property("Name", true, SimpleName.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - SimpleName result = targetAst.newSimpleName("foo"); //$NON-NLS-1$ - if (parented) { - targetAst.newExpressionStatement(result); - } - return result; - } - public ASTNode get() { - return x.getName(); - } - public void set(ASTNode value) { - x.setName((SimpleName) value); - } - }); - - genericPropertyListTest(x, x.arguments(), - new Property("Arguments", true, Expression.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - SimpleName result = targetAst.newSimpleName("foo"); //$NON-NLS-1$ - if (parented) { - targetAst.newExpressionStatement(result); - } - return result; - } - public ASTNode wrap() { - AnonymousClassDeclaration s1 = x.getAST().newAnonymousClassDeclaration(); - s1.bodyDeclarations().add(x); - return s1; - } - public void unwrap() { - AnonymousClassDeclaration s1 = (AnonymousClassDeclaration) x.getParent(); - s1.bodyDeclarations().remove(x); - } - }); - - genericPropertyTest(x, new Property("AnonymousClassDeclaration", false, AnonymousClassDeclaration.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - AnonymousClassDeclaration result = targetAst.newAnonymousClassDeclaration(); - if (parented) { - targetAst.newClassInstanceCreation().setAnonymousClassDeclaration(result); - } - return result; - } - public ASTNode wrap() { - // return AnonymousClassDeclaration that embeds x - AnonymousClassDeclaration s0 = x.getAST().newAnonymousClassDeclaration(); - EnumDeclaration s1 = x.getAST().newEnumDeclaration(); - s0.bodyDeclarations().add(s1); - s1.bodyDeclarations().add(x); - return s0; - } - public void unwrap() { - EnumDeclaration s1 = (EnumDeclaration) x.getParent(); - s1.bodyDeclarations().remove(x); - } - public ASTNode get() { - return x.getAnonymousClassDeclaration(); - } - public void set(ASTNode value) { - x.setAnonymousClassDeclaration((AnonymousClassDeclaration) value); - } - }); - - // check that TypeDeclarations in body are classified correctly - x.setAnonymousClassDeclaration(null); - AnonymousClassDeclaration w0 = ast.newAnonymousClassDeclaration(); - x.setAnonymousClassDeclaration(w0); - TypeDeclaration w1 = ast.newTypeDeclaration(); - w0.bodyDeclarations().add(w1); - - assertTrue(w1.isLocalTypeDeclaration() == false); - assertTrue(w1.isMemberTypeDeclaration() == true); - assertTrue(w1.isPackageMemberTypeDeclaration() == false); - - } /** @deprecated using deprecated code */ public void testTypeParameter() { @@ -3100,55 +2849,6 @@ assertTrue(x.isVarargs() == false); } - if (ast.apiLevel() >= AST.JLS3) { - genericPropertyListTest(x, x.modifiers(), new Property("Modifiers", true, IExtendedModifier.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - Modifier result = targetAst.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD); - if (parented) { - TypeDeclaration pd = targetAst.newTypeDeclaration(); - pd.modifiers().add(result); - } - return result; - } - public ASTNode wrap() { - SingleMemberAnnotation s1 = x.getAST().newSingleMemberAnnotation(); - ClassInstanceCreation s2 = x.getAST().newClassInstanceCreation(); - AnonymousClassDeclaration s3 = x.getAST().newAnonymousClassDeclaration(); - FunctionDeclaration s4 = x.getAST().newFunctionDeclaration(); - SingleVariableDeclaration s5 = x.getAST().newSingleVariableDeclaration(); - s1.setValue(s2); - s2.setAnonymousClassDeclaration(s3); - s3.bodyDeclarations().add(s4); - s4.parameters().add(s5); - s5.modifiers().add(x); - return s1; - } - public void unwrap() { - SingleVariableDeclaration s5 = (SingleVariableDeclaration) x.getParent(); - s5.modifiers().remove(x); - } - }); - - // check that getModifiers() tracks changes to modifiers() - x.modifiers().clear(); - assertTrue(x.getModifiers() == Modifier.NONE); - Modifier[] allMods = allModifiers(); - // one at a time - for (int i = 0 ; i < allMods.length; i++) { - x.modifiers().add(allMods[i]); - assertTrue(x.getModifiers() == allMods[i].getKeyword().toFlagValue()); - x.modifiers().remove(allMods[i]); - assertTrue(x.getModifiers() == Modifier.NONE); - } - // all at same time - for (int i = 0 ; i < allMods.length; i++) { - x.modifiers().add(allMods[i]); - } - int flags = x.getModifiers(); - for (int i = 0 ; i < allMods.length; i++) { - assertTrue((flags & allMods[i].getKeyword().toFlagValue()) != 0); - } - } genericPropertyTest(x, new Property("Name", true, SimpleName.class) { //$NON-NLS-1$ public ASTNode sample(AST targetAst, boolean parented) { @@ -3361,7 +3061,6 @@ assertTrue(x.getExtraDimensions() == 0); tJavadocComment(x); - tModifiers(x); if (ast.apiLevel() >= AST.JLS3) { genericPropertyListTest(x, x.typeParameters(), @@ -3534,7 +3233,6 @@ assertTrue(ast.modificationCount() == previousCount); tJavadocComment(x); - tModifiers(x); if (ast.apiLevel() == AST.JLS2) { int legal = Modifier.STATIC; @@ -4282,58 +3980,6 @@ assertTrue(x.getModifiers() == Modifier.NONE); } - if (ast.apiLevel() >= AST.JLS3) { - genericPropertyListTest(x, x.modifiers(), new Property("Modifiers", true, IExtendedModifier.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - Modifier result = targetAst.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD); - if (parented) { - TypeDeclaration pd = targetAst.newTypeDeclaration(); - pd.modifiers().add(result); - } - return result; - } - public ASTNode wrap() { - SingleMemberAnnotation s1 = x.getAST().newSingleMemberAnnotation(); - ClassInstanceCreation s2 = x.getAST().newClassInstanceCreation(); - AnonymousClassDeclaration s3 = x.getAST().newAnonymousClassDeclaration(); - FunctionDeclaration s4 = x.getAST().newFunctionDeclaration(); - Block s5 = x.getAST().newBlock(); - VariableDeclarationFragment s6 = x.getAST().newVariableDeclarationFragment(); - VariableDeclarationStatement s7 = x.getAST().newVariableDeclarationStatement(s6); - s1.setValue(s2); - s2.setAnonymousClassDeclaration(s3); - s3.bodyDeclarations().add(s4); - s4.setBody(s5); - s5.statements().add(s7); - s7.modifiers().add(x); - return s1; - } - public void unwrap() { - VariableDeclarationStatement s7 = (VariableDeclarationStatement) x.getParent(); - s7.modifiers().remove(x); - } - }); - - // check that getModifiers() tracks changes to modifiers() - x.modifiers().clear(); - assertTrue(x.getModifiers() == Modifier.NONE); - Modifier[] allMods = allModifiers(); - // one at a time - for (int i = 0 ; i < allMods.length; i++) { - x.modifiers().add(allMods[i]); - assertTrue(x.getModifiers() == allMods[i].getKeyword().toFlagValue()); - x.modifiers().remove(allMods[i]); - assertTrue(x.getModifiers() == Modifier.NONE); - } - // all at same time - for (int i = 0 ; i < allMods.length; i++) { - x.modifiers().add(allMods[i]); - } - int flags = x.getModifiers(); - for (int i = 0 ; i < allMods.length; i++) { - assertTrue((flags & allMods[i].getKeyword().toFlagValue()) != 0); - } - } genericPropertyTest(x, new Property("Type", true, Type.class) { //$NON-NLS-1$ public ASTNode sample(AST targetAst, boolean parented) { @@ -4513,47 +4159,6 @@ assertTrue(x.getModifiers() == Modifier.NONE); } - if (ast.apiLevel() >= AST.JLS3) { - genericPropertyListTest(x, x.modifiers(), new Property("Modifiers", true, IExtendedModifier.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - Modifier result = targetAst.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD); - if (parented) { - TypeDeclaration pd = targetAst.newTypeDeclaration(); - pd.modifiers().add(result); - } - return result; - } - public ASTNode wrap() { - SingleMemberAnnotation s1 = x.getAST().newSingleMemberAnnotation(); - s1.setValue(x); - return s1; - } - public void unwrap() { - SingleMemberAnnotation s1 = (SingleMemberAnnotation) x.getParent(); - s1.setValue(x.getAST().newNullLiteral()); - } - }); - - // check that getModifiers() tracks changes to modifiers() - x.modifiers().clear(); - assertTrue(x.getModifiers() == Modifier.NONE); - Modifier[] allMods = allModifiers(); - // one at a time - for (int i = 0 ; i < allMods.length; i++) { - x.modifiers().add(allMods[i]); - assertTrue(x.getModifiers() == allMods[i].getKeyword().toFlagValue()); - x.modifiers().remove(allMods[i]); - assertTrue(x.getModifiers() == Modifier.NONE); - } - // all at same time - for (int i = 0 ; i < allMods.length; i++) { - x.modifiers().add(allMods[i]); - } - int flags = x.getModifiers(); - for (int i = 0 ; i < allMods.length; i++) { - assertTrue((flags & allMods[i].getKeyword().toFlagValue()) != 0); - } - } genericPropertyTest(x, new Property("Type", true, Type.class) { //$NON-NLS-1$ public ASTNode sample(AST targetAst, boolean parented) { @@ -4644,7 +4249,6 @@ } tJavadocComment(x); - tModifiers(x); genericPropertyTest(x, new Property("Type", true, Type.class) { //$NON-NLS-1$ public ASTNode sample(AST targetAst, boolean parented) { @@ -5472,62 +5076,6 @@ return allMods; } - /** - * Exercise the modifiers property. - * - * @param x the body declaration to test - * @deprecated using deprecated code - */ - void tModifiers(final BodyDeclaration x) { - if (ast.apiLevel() == AST.JLS2) { - return; - } - genericPropertyListTest(x, x.modifiers(), new Property("Modifiers", true, IExtendedModifier.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - Modifier result = targetAst.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD); - if (parented) { - TypeDeclaration pd = targetAst.newTypeDeclaration(); - pd.modifiers().add(result); - } - return result; - } - public ASTNode wrap() { - SingleMemberAnnotation s1 = x.getAST().newSingleMemberAnnotation(); - ClassInstanceCreation s2 = x.getAST().newClassInstanceCreation(); - AnonymousClassDeclaration s3 = x.getAST().newAnonymousClassDeclaration(); - FunctionDeclaration s4 = x.getAST().newFunctionDeclaration(); - s1.setValue(s2); - s2.setAnonymousClassDeclaration(s3); - s3.bodyDeclarations().add(s4); - s4.modifiers().add(x); - return s1; - } - public void unwrap() { - FunctionDeclaration s4 = (FunctionDeclaration) x.getParent(); - s4.modifiers().remove(x); - } - }); - - // check that getModifiers() tracks changes to modifiers() - x.modifiers().clear(); - assertTrue(x.getModifiers() == Modifier.NONE); - Modifier[] allMods = allModifiers(); - // one at a time - for (int i = 0 ; i < allMods.length; i++) { - x.modifiers().add(allMods[i]); - assertTrue(x.getModifiers() == allMods[i].getKeyword().toFlagValue()); - x.modifiers().remove(allMods[i]); - assertTrue(x.getModifiers() == Modifier.NONE); - } - // all at same time - for (int i = 0 ; i < allMods.length; i++) { - x.modifiers().add(allMods[i]); - } - int flags = x.getModifiers(); - for (int i = 0 ; i < allMods.length; i++) { - assertTrue((flags & allMods[i].getKeyword().toFlagValue()) != 0); - } - } /** * Exercise the alternateRoot property of a Comment. @@ -6154,10 +5702,6 @@ assertTrue(node.resolveBinding() == null); return true; } - public boolean visit(EnumConstantDeclaration node) { - assertTrue(node.resolveVariable() == null); - return true; - } }; x.accept(v); @@ -7764,451 +7308,6 @@ }); } - /** @deprecated using deprecated code */ - public void testAnnotationTypeDeclaration() { - if (ast.apiLevel() == AST.JLS2) { - // node type introduced in 3.0 API - try { - ast.newAnnotationTypeDeclaration(); - assertTrue(false); - } catch (UnsupportedOperationException e) { - // pass - } - return; - } - long previousCount = ast.modificationCount(); - final AnnotationTypeDeclaration x = ast.newAnnotationTypeDeclaration(); - assertTrue(ast.modificationCount() > previousCount); - previousCount = ast.modificationCount(); - assertTrue(x.getAST() == ast); - assertTrue(x.getParent() == null); - assertTrue(x.modifiers().size() == 0); - assertTrue(x.getJavadoc() == null); - assertTrue(x.getName().getParent() == x); - assertTrue(x.getName().isDeclaration() == true); - assertTrue(x.bodyDeclarations().size()== 0); - assertTrue(x.getNodeType() == ASTNode.ANNOTATION_TYPE_DECLARATION); - assertTrue(x.structuralPropertiesForType() == - AnnotationTypeDeclaration.propertyDescriptors(ast.apiLevel())); - // make sure that reading did not change modification count - assertTrue(ast.modificationCount() == previousCount); - - previousCount = ast.modificationCount(); - - tJavadocComment(x); - tModifiers(x); - - genericPropertyTest(x, new Property("Name", true, SimpleName.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - SimpleName result = targetAst.newSimpleName("foo"); //$NON-NLS-1$ - if (parented) { - targetAst.newExpressionStatement(result); - } - return result; - } - public ASTNode get() { - return x.getName(); - } - public void set(ASTNode value) { - x.setName((SimpleName) value); - } - }); - - genericPropertyListTest(x, x.bodyDeclarations(), - new Property("BodyDeclarations", true, BodyDeclaration.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - AnnotationTypeMemberDeclaration result = targetAst.newAnnotationTypeMemberDeclaration(); - if (parented) { - AnnotationTypeDeclaration atd = targetAst.newAnnotationTypeDeclaration(); - atd.bodyDeclarations().add(result); - } - return result; - } - public ASTNode wrap() { - // return AnnotationTypeMemberDeclaration that embeds x - AnnotationTypeMemberDeclaration s1 = x.getAST().newAnnotationTypeMemberDeclaration(); - ClassInstanceCreation s2 = x.getAST().newClassInstanceCreation(); - AnonymousClassDeclaration s3 = x.getAST().newAnonymousClassDeclaration(); - s1.setDefault(s2); - s2.setAnonymousClassDeclaration(s3); - s3.bodyDeclarations().add(x); - return s1; - } - public void unwrap() { - AnonymousClassDeclaration s3 = (AnonymousClassDeclaration) x.getParent(); - s3.bodyDeclarations().remove(x); - } - }); - - // check that TypeDeclarations in body are classified correctly - assertTrue(x.isLocalTypeDeclaration() == false); - assertTrue(x.isMemberTypeDeclaration() == false); - assertTrue(x.isPackageMemberTypeDeclaration() == false); - - // check special bodyDeclaration methods - TypeDeclaration t0 = ast.newTypeDeclaration(); - AnnotationTypeDeclaration t1 = ast.newAnnotationTypeDeclaration(); - t0.bodyDeclarations().add(t1); - assertTrue(t1.isLocalTypeDeclaration() == false); - assertTrue(t1.isMemberTypeDeclaration() == true); - assertTrue(t1.isPackageMemberTypeDeclaration() == false); - - JavaScriptUnit t2 = ast.newJavaScriptUnit(); - AnnotationTypeDeclaration t3 = ast.newAnnotationTypeDeclaration(); - t2.types().add(t3); - assertTrue(t3.isLocalTypeDeclaration() == false); - assertTrue(t3.isMemberTypeDeclaration() == false); - assertTrue(t3.isPackageMemberTypeDeclaration() == true); - } - - /** @deprecated using deprecated code */ - public void testAnnotationTypeMemberDeclaration() { - if (ast.apiLevel() == AST.JLS2) { - // node type introduced in 3.0 API - try { - ast.newAnnotationTypeMemberDeclaration(); - assertTrue(false); - } catch (UnsupportedOperationException e) { - // pass - } - return; - } - long previousCount = ast.modificationCount(); - final AnnotationTypeMemberDeclaration x = ast.newAnnotationTypeMemberDeclaration(); - assertTrue(ast.modificationCount() > previousCount); - previousCount = ast.modificationCount(); - assertTrue(x.getAST() == ast); - assertTrue(x.getParent() == null); - assertTrue(x.modifiers().size() == 0); - assertTrue(x.getName().getParent() == x); - assertTrue(x.getName().isDeclaration() == true); - assertTrue(x.getType().getParent() == x); - assertTrue(x.getJavadoc() == null); - assertTrue(x.getDefault() == null); - assertTrue(x.getNodeType() == ASTNode.ANNOTATION_TYPE_MEMBER_DECLARATION); - assertTrue(x.structuralPropertiesForType() == - AnnotationTypeMemberDeclaration.propertyDescriptors(ast.apiLevel())); - // make sure that reading did not change modification count - assertTrue(ast.modificationCount() == previousCount); - - tJavadocComment(x); - tModifiers(x); - - genericPropertyTest(x, new Property("Name", true, SimpleName.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - SimpleName result = targetAst.newSimpleName("foo"); //$NON-NLS-1$ - if (parented) { - targetAst.newExpressionStatement(result); - } - return result; - } - public ASTNode get() { - return x.getName(); - } - public void set(ASTNode value) { - x.setName((SimpleName) value); - } - }); - - genericPropertyTest(x, new Property("Type", true, Type.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - SimpleType result = targetAst.newSimpleType( - targetAst.newSimpleName("foo")); //$NON-NLS-1$ - if (parented) { - targetAst.newArrayType(result); - } - return result; - } - public ASTNode get() { - return x.getType(); - } - public void set(ASTNode value) { - x.setType((Type) value); - } - }); - - genericPropertyTest(x, new Property("Default", false, Expression.class) { //$NON-NLS-1$ - public ASTNode sample(AST localAst, boolean parented) { - Expression result = localAst.newSimpleName("foo"); //$NON-NLS-1$ - if (parented) { - localAst.newExpressionStatement(result); - } - return result; - } - public ASTNode wrap() { - // return Expression that embeds x - ClassInstanceCreation s1 = x.getAST().newClassInstanceCreation(); - AnonymousClassDeclaration s2 = x.getAST().newAnonymousClassDeclaration(); - s1.setAnonymousClassDeclaration(s2); - s2.bodyDeclarations().add(x); - return s1; - } - public void unwrap() { - AnonymousClassDeclaration s2 = (AnonymousClassDeclaration) x.getParent(); - s2.bodyDeclarations().remove(x); - } - public ASTNode get() { - return x.getDefault(); - } - public void set(ASTNode value) { - x.setDefault((Expression) value); - } - }); - } - - /** @deprecated using deprecated code */ - public void testNormalAnnotation() { - if (ast.apiLevel() == AST.JLS2) { - // node type introduced in 3.0 API - try { - ast.newNormalAnnotation(); - assertTrue(false); - } catch (UnsupportedOperationException e) { - // pass - } - return; - } - long previousCount = ast.modificationCount(); - final NormalAnnotation x = ast.newNormalAnnotation(); //$NON-NLS-1$ - assertTrue(ast.modificationCount() > previousCount); - previousCount = ast.modificationCount(); - assertTrue(x.getAST() == ast); - assertTrue(x.getParent() == null); - assertTrue(x.getTypeName().getParent() == x); - assertTrue(x.values().size() == 0); - assertTrue(x.isAnnotation()); - assertTrue(!x.isModifier()); - assertTrue(!x.isMarkerAnnotation()); - assertTrue(x.isNormalAnnotation()); - assertTrue(!x.isSingleMemberAnnotation()); - assertTrue(x.getNodeType() == ASTNode.NORMAL_ANNOTATION); - assertTrue(x.structuralPropertiesForType() == - NormalAnnotation.propertyDescriptors(ast.apiLevel())); - // make sure that reading did not change modification count - assertTrue(ast.modificationCount() == previousCount); - - tAnnotationName(x); - - genericPropertyListTest(x, x.values(), new Property("Values", true, MemberValuePair.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - MemberValuePair result = targetAst.newMemberValuePair(); - if (parented) { - NormalAnnotation ann = targetAst.newNormalAnnotation(); - ann.values().add(result); - } - return result; - } - public ASTNode wrap() { - // return MemberValuePair that embeds x - MemberValuePair s1 = x.getAST().newMemberValuePair(); - ClassInstanceCreation s2 = x.getAST().newClassInstanceCreation(); - AnonymousClassDeclaration s3 = x.getAST().newAnonymousClassDeclaration(); - FunctionDeclaration s4 = x.getAST().newFunctionDeclaration(); - s1.setValue(s2); - s2.setAnonymousClassDeclaration(s3); - s3.bodyDeclarations().add(s4); - s4.modifiers().add(x); - return s1; - } - public void unwrap() { - FunctionDeclaration s4 = (FunctionDeclaration) x.getParent(); - s4.modifiers().remove(x); - } - }); - } - - /** @deprecated using deprecated code */ - public void testMarkerAnnotation() { - if (ast.apiLevel() == AST.JLS2) { - // node type introduced in 3.0 API - try { - ast.newMarkerAnnotation(); - assertTrue(false); - } catch (UnsupportedOperationException e) { - // pass - } - return; - } - long previousCount = ast.modificationCount(); - final MarkerAnnotation x = ast.newMarkerAnnotation(); //$NON-NLS-1$ - assertTrue(ast.modificationCount() > previousCount); - previousCount = ast.modificationCount(); - assertTrue(x.getAST() == ast); - assertTrue(x.getParent() == null); - assertTrue(x.getTypeName().getParent() == x); - assertTrue(x.isAnnotation()); - assertTrue(!x.isModifier()); - assertTrue(x.isMarkerAnnotation()); - assertTrue(!x.isNormalAnnotation()); - assertTrue(!x.isSingleMemberAnnotation()); - assertTrue(x.getNodeType() == ASTNode.MARKER_ANNOTATION); - assertTrue(x.structuralPropertiesForType() == - MarkerAnnotation.propertyDescriptors(ast.apiLevel())); - // make sure that reading did not change modification count - assertTrue(ast.modificationCount() == previousCount); - - tAnnotationName(x); - } - - /** @deprecated using deprecated code */ - public void testSingleMemberAnnotation() { - if (ast.apiLevel() == AST.JLS2) { - // node type introduced in 3.0 API - try { - ast.newSingleMemberAnnotation(); - assertTrue(false); - } catch (UnsupportedOperationException e) { - // pass - } - return; - } - long previousCount = ast.modificationCount(); - final SingleMemberAnnotation x = ast.newSingleMemberAnnotation(); //$NON-NLS-1$ - assertTrue(ast.modificationCount() > previousCount); - previousCount = ast.modificationCount(); - assertTrue(x.getAST() == ast); - assertTrue(x.getParent() == null); - assertTrue(x.getTypeName().getParent() == x); - assertTrue(x.isAnnotation()); - assertTrue(!x.isModifier()); - assertTrue(!x.isMarkerAnnotation()); - assertTrue(!x.isNormalAnnotation()); - assertTrue(x.isSingleMemberAnnotation()); - assertTrue(x.getNodeType() == ASTNode.SINGLE_MEMBER_ANNOTATION); - // make sure that reading did not change modification count - assertTrue(ast.modificationCount() == previousCount); - - tAnnotationName(x); - - genericPropertyTest(x, new Property("Value", true, Expression.class) { //$NON-NLS-1$ - public ASTNode sample(AST localAst, boolean parented) { - Expression result = localAst.newSimpleName("foo"); //$NON-NLS-1$ - if (parented) { - localAst.newExpressionStatement(result); - } - return result; - } - public ASTNode wrap() { - // return Expression that embeds x - ClassInstanceCreation s1 = x.getAST().newClassInstanceCreation(); - AnonymousClassDeclaration s2 = x.getAST().newAnonymousClassDeclaration(); - FunctionDeclaration s3 = x.getAST().newFunctionDeclaration(); - s1.setAnonymousClassDeclaration(s2); - s2.bodyDeclarations().add(s3); - s3.modifiers().add(x); - return s1; - } - public void unwrap() { - FunctionDeclaration s3 = (FunctionDeclaration) x.getParent(); - s3.modifiers().remove(x); - } - public ASTNode get() { - return x.getValue(); - } - public void set(ASTNode value) { - x.setValue((Expression) value); - } - }); - } - - /** @deprecated using deprecated code */ - public void testMemberValuePair() { - if (ast.apiLevel() == AST.JLS2) { - // node type introduced in 3.0 API - try { - ast.newMemberValuePair(); - assertTrue(false); - } catch (UnsupportedOperationException e) { - // pass - } - return; - } - long previousCount = ast.modificationCount(); - final MemberValuePair x = ast.newMemberValuePair(); //$NON-NLS-1$ - assertTrue(ast.modificationCount() > previousCount); - previousCount = ast.modificationCount(); - assertTrue(x.getAST() == ast); - assertTrue(x.getParent() == null); - assertTrue(x.getName().getParent() == x); - assertTrue(x.getName().isDeclaration() == false); - assertTrue(x.getNodeType() == ASTNode.MEMBER_VALUE_PAIR); - assertTrue(x.structuralPropertiesForType() == - MemberValuePair.propertyDescriptors(ast.apiLevel())); - // make sure that reading did not change modification count - assertTrue(ast.modificationCount() == previousCount); - - genericPropertyTest(x, new Property("Name", true, SimpleName.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - SimpleName result = targetAst.newSimpleName("a"); //$NON-NLS-1$ - if (parented) { - targetAst.newExpressionStatement(result); - } - return result; - } - public ASTNode get() { - return x.getName(); - } - public void set(ASTNode value) { - x.setName((SimpleName) value); - } - }); - - genericPropertyTest(x, new Property("Value", true, Expression.class) { //$NON-NLS-1$ - public ASTNode sample(AST localAst, boolean parented) { - Expression result = localAst.newSimpleName("foo"); //$NON-NLS-1$ - if (parented) { - localAst.newExpressionStatement(result); - } - return result; - } - public ASTNode wrap() { - // return Expression that embeds x - ClassInstanceCreation s1 = x.getAST().newClassInstanceCreation(); - AnonymousClassDeclaration s2 = x.getAST().newAnonymousClassDeclaration(); - FunctionDeclaration s3 = x.getAST().newFunctionDeclaration(); - NormalAnnotation s4 = x.getAST().newNormalAnnotation(); - s1.setAnonymousClassDeclaration(s2); - s2.bodyDeclarations().add(s3); - s3.modifiers().add(s4); - s4.values().add(x); - return s1; - } - public void unwrap() { - NormalAnnotation s4 = (NormalAnnotation) x.getParent(); - s4.values().remove(x); - } - public ASTNode get() { - return x.getValue(); - } - public void set(ASTNode value) { - x.setValue((Expression) value); - } - }); - } - - /** - * Exercise the typeName property of an Annotation. - * - * @param x the annotation to test - * @since 3.0 - */ - public void tAnnotationName(final Annotation x) { - genericPropertyTest(x, new Property("TypeName", true, Name.class) { //$NON-NLS-1$ - public ASTNode sample(AST targetAst, boolean parented) { - SimpleName result = targetAst.newSimpleName("a"); //$NON-NLS-1$ - if (parented) { - targetAst.newExpressionStatement(result); - } - return result; - } - public ASTNode get() { - return x.getTypeName(); - } - public void set(ASTNode value) { - x.setTypeName((Name) value); - } - }); - } /** @deprecated using deprecated code */ public void testModifiers() { @@ -8483,25 +7582,15 @@ assertTrue(ASTNode.FUNCTION_REF == 68); assertTrue(ASTNode.FUNCTION_REF_PARAMETER == 69); assertTrue(ASTNode.ENHANCED_FOR_STATEMENT == 70); - assertTrue(ASTNode.ENUM_DECLARATION == 71); - assertTrue(ASTNode.ENUM_CONSTANT_DECLARATION == 72); assertTrue(ASTNode.TYPE_PARAMETER == 73); assertTrue(ASTNode.PARAMETERIZED_TYPE == 74); assertTrue(ASTNode.QUALIFIED_TYPE == 75); assertTrue(ASTNode.WILDCARD_TYPE == 76); - assertTrue(ASTNode.NORMAL_ANNOTATION == 77); - assertTrue(ASTNode.MARKER_ANNOTATION == 78); - assertTrue(ASTNode.SINGLE_MEMBER_ANNOTATION == 79); - assertTrue(ASTNode.MEMBER_VALUE_PAIR == 80); - assertTrue(ASTNode.ANNOTATION_TYPE_DECLARATION == 81); - assertTrue(ASTNode.ANNOTATION_TYPE_MEMBER_DECLARATION == 82); assertTrue(ASTNode.MODIFIER == 83); // ensure that all constants are distinct, positive, and small // (this may seem paranoid, but this test did uncover a stupid bug!) int[] all= { - ASTNode.ANNOTATION_TYPE_DECLARATION, - ASTNode.ANNOTATION_TYPE_MEMBER_DECLARATION, ASTNode.ANONYMOUS_CLASS_DECLARATION, ASTNode.ARRAY_ACCESS, ASTNode.ARRAY_CREATION, @@ -8524,8 +7613,6 @@ ASTNode.DO_STATEMENT, ASTNode.EMPTY_STATEMENT, ASTNode.ENHANCED_FOR_STATEMENT, - ASTNode.ENUM_CONSTANT_DECLARATION, - ASTNode.ENUM_DECLARATION, ASTNode.EXPRESSION_STATEMENT, ASTNode.FIELD_ACCESS, ASTNode.FIELD_DECLARATION, @@ -8538,15 +7625,12 @@ ASTNode.JSDOC, ASTNode.LABELED_STATEMENT, ASTNode.LINE_COMMENT, - ASTNode.MARKER_ANNOTATION, ASTNode.MEMBER_REF, - ASTNode.MEMBER_VALUE_PAIR, ASTNode.FUNCTION_DECLARATION, ASTNode.FUNCTION_INVOCATION, ASTNode.FUNCTION_REF, ASTNode.FUNCTION_REF_PARAMETER, ASTNode.MODIFIER, - ASTNode.NORMAL_ANNOTATION, ASTNode.NULL_LITERAL, ASTNode.NUMBER_LITERAL, ASTNode.PACKAGE_DECLARATION, @@ -8560,7 +7644,6 @@ ASTNode.RETURN_STATEMENT, ASTNode.SIMPLE_NAME, ASTNode.SIMPLE_TYPE, - ASTNode.SINGLE_MEMBER_ANNOTATION, ASTNode.SINGLE_VARIABLE_DECLARATION, ASTNode.STRING_LITERAL, ASTNode.SUPER_CONSTRUCTOR_INVOCATION,
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTVisitorTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTVisitorTest.java index 0937859..761d8b8 100644 --- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTVisitorTest.java +++ b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTVisitorTest.java
@@ -12,9 +12,90 @@ package org.eclipse.wst.jsdt.core.tests.dom; import java.lang.reflect.Method; + import junit.framework.Test; -import org.eclipse.wst.jsdt.core.dom.*; + +import org.eclipse.wst.jsdt.core.dom.AST; import org.eclipse.wst.jsdt.core.dom.ASTNode; +import org.eclipse.wst.jsdt.core.dom.ASTVisitor; +import org.eclipse.wst.jsdt.core.dom.AnonymousClassDeclaration; +import org.eclipse.wst.jsdt.core.dom.ArrayAccess; +import org.eclipse.wst.jsdt.core.dom.ArrayCreation; +import org.eclipse.wst.jsdt.core.dom.ArrayInitializer; +import org.eclipse.wst.jsdt.core.dom.ArrayType; +import org.eclipse.wst.jsdt.core.dom.AssertStatement; +import org.eclipse.wst.jsdt.core.dom.Assignment; +import org.eclipse.wst.jsdt.core.dom.Block; +import org.eclipse.wst.jsdt.core.dom.BlockComment; +import org.eclipse.wst.jsdt.core.dom.BooleanLiteral; +import org.eclipse.wst.jsdt.core.dom.BreakStatement; +import org.eclipse.wst.jsdt.core.dom.CastExpression; +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.ConditionalExpression; +import org.eclipse.wst.jsdt.core.dom.ConstructorInvocation; +import org.eclipse.wst.jsdt.core.dom.ContinueStatement; +import org.eclipse.wst.jsdt.core.dom.DoStatement; +import org.eclipse.wst.jsdt.core.dom.EmptyStatement; +import org.eclipse.wst.jsdt.core.dom.EnhancedForStatement; +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.FunctionRef; +import org.eclipse.wst.jsdt.core.dom.FunctionRefParameter; +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.JSdoc; +import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit; +import org.eclipse.wst.jsdt.core.dom.LabeledStatement; +import org.eclipse.wst.jsdt.core.dom.LineComment; +import org.eclipse.wst.jsdt.core.dom.MemberRef; +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.NumberLiteral; +import org.eclipse.wst.jsdt.core.dom.PackageDeclaration; +import org.eclipse.wst.jsdt.core.dom.ParameterizedType; +import org.eclipse.wst.jsdt.core.dom.ParenthesizedExpression; +import org.eclipse.wst.jsdt.core.dom.PostfixExpression; +import org.eclipse.wst.jsdt.core.dom.PrefixExpression; +import org.eclipse.wst.jsdt.core.dom.PrimitiveType; +import org.eclipse.wst.jsdt.core.dom.QualifiedName; +import org.eclipse.wst.jsdt.core.dom.QualifiedType; +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.SuperConstructorInvocation; +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.TagElement; +import org.eclipse.wst.jsdt.core.dom.TextElement; +import org.eclipse.wst.jsdt.core.dom.ThisExpression; +import org.eclipse.wst.jsdt.core.dom.ThrowStatement; +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.TypeLiteral; +import org.eclipse.wst.jsdt.core.dom.TypeParameter; +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.dom.WildcardType; public class ASTVisitorTest extends org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase { @@ -103,21 +184,15 @@ String TP1S; TypeParameter TP2; String TP2S; - MemberValuePair MVP1; String MVP1S; - MemberValuePair MVP2; String MVP2S; Modifier MOD1; String MOD1S; Modifier MOD2; String MOD2S; - Annotation ANO1; String ANO1S; - Annotation ANO2; String ANO2S; - EnumConstantDeclaration EC1; String EC1S; - EnumConstantDeclaration EC2; String EC2S; final StringBuffer b = new StringBuffer(); @@ -248,36 +323,12 @@ TP2.setName(ast.newSimpleName("y")); //$NON-NLS-1$ TP2S = "[(tTP[(nSyynS)]tTP)]"; //$NON-NLS-1$ - MVP1 = ast.newMemberValuePair(); - MVP1.setName(ast.newSimpleName("x")); //$NON-NLS-1$ - MVP1.setValue(ast.newSimpleName("y")); //$NON-NLS-1$ - MVP1S = "[(@MVP[(nSxxnS)][(nSyynS)]@MVP)]"; //$NON-NLS-1$ - - MVP2 = ast.newMemberValuePair(); - MVP2.setName(ast.newSimpleName("a")); //$NON-NLS-1$ - MVP2.setValue(ast.newSimpleName("b")); //$NON-NLS-1$ - MVP2S = "[(@MVP[(nSaanS)][(nSbbnS)]@MVP)]"; //$NON-NLS-1$ MOD1 = ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD); MOD1S = "[(MODpublicpublicMOD)]"; //$NON-NLS-1$ MOD2 = ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD); MOD2S = "[(MODfinalfinalMOD)]"; //$NON-NLS-1$ - ANO1 = ast.newMarkerAnnotation(); - ANO1.setTypeName(ast.newSimpleName("a")); //$NON-NLS-1$ - ANO1S = "[(@MAN[(nSaanS)]@MAN)]"; //$NON-NLS-1$ - - ANO2 = ast.newNormalAnnotation(); - ANO2.setTypeName(ast.newSimpleName("b")); //$NON-NLS-1$ - ANO2S = "[(@NAN[(nSbbnS)]@NAN)]"; //$NON-NLS-1$ - - EC1 = ast.newEnumConstantDeclaration(); - EC1.setName(ast.newSimpleName("c")); //$NON-NLS-1$ - EC1S = "[(ECD[(nSccnS)]ECD)]"; //$NON-NLS-1$ - - EC2 = ast.newEnumConstantDeclaration(); - EC2.setName(ast.newSimpleName("d")); //$NON-NLS-1$ - EC2S = "[(ECD[(nSddnS)]ECD)]"; //$NON-NLS-1$ } } @@ -559,22 +610,6 @@ b.append("sEFR)"); //$NON-NLS-1$ } - public boolean visit(EnumConstantDeclaration node) { - b.append("(ECD"); //$NON-NLS-1$ - return isVisitingChildren(); - } - public void endVisit(EnumConstantDeclaration node) { - b.append("ECD)"); //$NON-NLS-1$ - } - - public boolean visit(EnumDeclaration node) { - b.append("(ED"); //$NON-NLS-1$ - return isVisitingChildren(); - } - public void endVisit(EnumDeclaration node) { - b.append("ED)"); //$NON-NLS-1$ - } - public boolean visit(ExpressionStatement node) { b.append("(sEX"); //$NON-NLS-1$ return isVisitingChildren(); @@ -967,53 +1002,6 @@ b.append("sWH)"); //$NON-NLS-1$ } - public boolean visit(AnnotationTypeDeclaration node) { - b.append("(@TD"); //$NON-NLS-1$ - return isVisitingChildren(); - } - public void endVisit(AnnotationTypeDeclaration node) { - b.append("@TD)"); //$NON-NLS-1$ - } - - public boolean visit(AnnotationTypeMemberDeclaration node) { - b.append("(@MD"); //$NON-NLS-1$ - return isVisitingChildren(); - } - public void endVisit(AnnotationTypeMemberDeclaration node) { - b.append("@MD)"); //$NON-NLS-1$ - } - - public boolean visit(NormalAnnotation node) { - b.append("(@NAN"); //$NON-NLS-1$ - return isVisitingChildren(); - } - public void endVisit(NormalAnnotation node) { - b.append("@NAN)"); //$NON-NLS-1$ - } - - public boolean visit(MarkerAnnotation node) { - b.append("(@MAN"); //$NON-NLS-1$ - return isVisitingChildren(); - } - public void endVisit(MarkerAnnotation node) { - b.append("@MAN)"); //$NON-NLS-1$ - } - - public boolean visit(SingleMemberAnnotation node) { - b.append("(@SMAN"); //$NON-NLS-1$ - return isVisitingChildren(); - } - public void endVisit(SingleMemberAnnotation node) { - b.append("@SMAN)"); //$NON-NLS-1$ - } - - public boolean visit(MemberValuePair node) { - b.append("(@MVP"); //$NON-NLS-1$ - return isVisitingChildren(); - } - public void endVisit(MemberValuePair node) { - b.append("@MVP)"); //$NON-NLS-1$ - } public boolean visit(Modifier node) { b.append("(MOD"); //$NON-NLS-1$ @@ -1360,48 +1348,6 @@ String result = b.toString(); assertTrue(result.equals("[(sEMsEM)]")); //$NON-NLS-1$ } - /** @deprecated Only to suppress warnings for refs to bodyDeclarations. */ - // TODO (jeem) - remove deprecation after 3.1 M4 - public void testEnumConstantDeclaration() { - if (ast.apiLevel() == AST.JLS2) { - return; - } - EnumConstantDeclaration x1 = ast.newEnumConstantDeclaration(); - x1.setJavadoc(JD1); - x1.modifiers().add(MOD1); - x1.modifiers().add(MOD2); - x1.setName(N1); - x1.arguments().add(E1); - x1.arguments().add(E2); - x1.setAnonymousClassDeclaration(ACD1); - TestVisitor v1 = new TestVisitor(); - b.setLength(0); - x1.accept(v1); - String result = b.toString(); - assertTrue(result.equals("[(ECD"+JD1S+MOD1S+MOD2S+N1S+E1S+E2S+ACD1S+"ECD)]")); //$NON-NLS-1$ //$NON-NLS-2$ - } - /** @deprecated using deprecated code */ - public void testEnumDeclaration() { - if (ast.apiLevel() == AST.JLS2) { - return; - } - EnumDeclaration x1 = ast.newEnumDeclaration(); - x1.setJavadoc(JD1); - x1.modifiers().add(MOD1); - x1.modifiers().add(MOD2); - x1.setName(N1); - x1.superInterfaceTypes().add(T1); - x1.superInterfaceTypes().add(T2); - x1.enumConstants().add(EC1); - x1.enumConstants().add(EC2); - x1.bodyDeclarations().add(FD1); - x1.bodyDeclarations().add(FD2); - TestVisitor v1 = new TestVisitor(); - b.setLength(0); - x1.accept(v1); - String result = b.toString(); - assertTrue(result.equals("[(ED"+JD1S+MOD1S+MOD2S+N1S+T1S+T2S+EC1S+EC2S+FD1S+FD2S+"ED)]")); //$NON-NLS-1$ //$NON-NLS-2$ - } public void testExpressionStatement() { ExpressionStatement x1 = ast.newExpressionStatement(E1); TestVisitor v1 = new TestVisitor(); @@ -1685,104 +1631,6 @@ assertTrue(result.equals("[(MODprivateprivateMOD)]")); //$NON-NLS-1$ //$NON-NLS-2$ } - /** @deprecated using deprecated code */ - public void testNormalAnnotation() { - if (ast.apiLevel() == AST.JLS2) { - return; - } - NormalAnnotation x1 = ast.newNormalAnnotation(); - x1.setTypeName(N1); - x1.values().add(MVP1); - x1.values().add(MVP2); - TestVisitor v1 = new TestVisitor(); - b.setLength(0); - x1.accept(v1); - String result = b.toString(); - assertTrue(result.equals("[(@NAN"+N1S+MVP1S+MVP2S+"@NAN)]")); //$NON-NLS-1$ //$NON-NLS-2$ - } - - /** @deprecated using deprecated code */ - public void testMemberValuePair() { - if (ast.apiLevel() == AST.JLS2) { - return; - } - MemberValuePair x1 = ast.newMemberValuePair(); - x1.setName(N1); - x1.setValue(E1); - TestVisitor v1 = new TestVisitor(); - b.setLength(0); - x1.accept(v1); - String result = b.toString(); - assertTrue(result.equals("[(@MVP"+N1S+E1S+"@MVP)]")); //$NON-NLS-1$ //$NON-NLS-2$ - } - - /** @deprecated using deprecated code */ - public void testMarkerAnnotation() { - if (ast.apiLevel() == AST.JLS2) { - return; - } - MarkerAnnotation x1 = ast.newMarkerAnnotation(); - x1.setTypeName(N1); - TestVisitor v1 = new TestVisitor(); - b.setLength(0); - x1.accept(v1); - String result = b.toString(); - assertTrue(result.equals("[(@MAN"+N1S+"@MAN)]")); //$NON-NLS-1$ //$NON-NLS-2$ - } - - /** @deprecated using deprecated code */ - public void testSingleMemberAnnotation() { - if (ast.apiLevel() == AST.JLS2) { - return; - } - SingleMemberAnnotation x1 = ast.newSingleMemberAnnotation(); - x1.setTypeName(N1); - x1.setValue(E1); - TestVisitor v1 = new TestVisitor(); - b.setLength(0); - x1.accept(v1); - String result = b.toString(); - assertTrue(result.equals("[(@SMAN"+N1S+E1S+"@SMAN)]")); //$NON-NLS-1$ //$NON-NLS-2$ - } - - /** @deprecated using deprecated code */ - public void testAnnotationTypeDeclaration() { - if (ast.apiLevel() == AST.JLS2) { - return; - } - AnnotationTypeDeclaration x1 = ast.newAnnotationTypeDeclaration(); - x1.setJavadoc(JD1); - x1.modifiers().add(MOD1); - x1.modifiers().add(MOD2); - x1.setName(N1); - x1.bodyDeclarations().add(FD1); - x1.bodyDeclarations().add(FD2); - TestVisitor v1 = new TestVisitor(); - b.setLength(0); - x1.accept(v1); - String result = b.toString(); - assertTrue(result.equals("[(@TD"+JD1S+MOD1S+MOD2S+N1S+FD1S+FD2S+"@TD)]")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - } - - /** @deprecated using deprecated code */ - public void testAnnotationTypeMemberDeclaration() { - if (ast.apiLevel() == AST.JLS2) { - return; - } - AnnotationTypeMemberDeclaration x1 = ast.newAnnotationTypeMemberDeclaration(); - x1.setJavadoc(JD1); - x1.modifiers().add(MOD1); - x1.modifiers().add(MOD2); - x1.setType(T1); - x1.setName(N1); - x1.setDefault(E1); - TestVisitor v1 = new TestVisitor(); - b.setLength(0); - x1.accept(v1); - String result = b.toString(); - assertTrue(result.equals("[(@MD"+JD1S+MOD1S+MOD2S+T1S+N1S+E1S+"@MD)]")); //$NON-NLS-1$ //$NON-NLS-2$ - } - public void testNullLiteral() { NullLiteral x1 = ast.newNullLiteral(); TestVisitor v1 = new TestVisitor(); @@ -1799,25 +1647,6 @@ String result = b.toString(); assertTrue(result.equals("[(eNU1.01.0eNU)]")); //$NON-NLS-1$ } - /** @deprecated using deprecated code */ - public void testPackageDeclaration() { - PackageDeclaration x1 = ast.newPackageDeclaration(); - if (ast.apiLevel() >= AST.JLS3) { - x1.setJavadoc(JD1); - x1.annotations().add(ANO1); - x1.annotations().add(ANO2); - } - x1.setName(N1); - TestVisitor v1 = new TestVisitor(); - b.setLength(0); - x1.accept(v1); - String result = b.toString(); - if (ast.apiLevel() == AST.JLS2) { - assertTrue(result.equals("[(PD"+N1S+"PD)]")); //$NON-NLS-1$ //$NON-NLS-2$ - } else { - assertTrue(result.equals("[(PD"+JD1S+ANO1S+ANO2S+N1S+"PD)]")); //$NON-NLS-1$ //$NON-NLS-2$ - } - } public void testParenthesizedExpression() { ParenthesizedExpression x1 = ast.newParenthesizedExpression(); x1.setExpression(E1);
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/BindingsCollectorVisitor.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/BindingsCollectorVisitor.java index 40a9dd0..66e209f 100644 --- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/BindingsCollectorVisitor.java +++ b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/BindingsCollectorVisitor.java
@@ -13,7 +13,55 @@ import java.util.HashMap; import java.util.HashSet; -import org.eclipse.wst.jsdt.core.dom.*; +import org.eclipse.wst.jsdt.core.dom.ASTNode; +import org.eclipse.wst.jsdt.core.dom.ASTVisitor; +import org.eclipse.wst.jsdt.core.dom.AnonymousClassDeclaration; +import org.eclipse.wst.jsdt.core.dom.ArrayAccess; +import org.eclipse.wst.jsdt.core.dom.ArrayCreation; +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.BooleanLiteral; +import org.eclipse.wst.jsdt.core.dom.CastExpression; +import org.eclipse.wst.jsdt.core.dom.CharacterLiteral; +import org.eclipse.wst.jsdt.core.dom.ClassInstanceCreation; +import org.eclipse.wst.jsdt.core.dom.ConditionalExpression; +import org.eclipse.wst.jsdt.core.dom.ConstructorInvocation; +import org.eclipse.wst.jsdt.core.dom.FieldAccess; +import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration; +import org.eclipse.wst.jsdt.core.dom.FunctionInvocation; +import org.eclipse.wst.jsdt.core.dom.FunctionRef; +import org.eclipse.wst.jsdt.core.dom.IBinding; +import org.eclipse.wst.jsdt.core.dom.IFunctionBinding; +import org.eclipse.wst.jsdt.core.dom.IPackageBinding; +import org.eclipse.wst.jsdt.core.dom.ITypeBinding; +import org.eclipse.wst.jsdt.core.dom.IVariableBinding; +import org.eclipse.wst.jsdt.core.dom.ImportDeclaration; +import org.eclipse.wst.jsdt.core.dom.InfixExpression; +import org.eclipse.wst.jsdt.core.dom.InstanceofExpression; +import org.eclipse.wst.jsdt.core.dom.ListExpression; +import org.eclipse.wst.jsdt.core.dom.MemberRef; +import org.eclipse.wst.jsdt.core.dom.NullLiteral; +import org.eclipse.wst.jsdt.core.dom.NumberLiteral; +import org.eclipse.wst.jsdt.core.dom.PackageDeclaration; +import org.eclipse.wst.jsdt.core.dom.ParameterizedType; +import org.eclipse.wst.jsdt.core.dom.ParenthesizedExpression; +import org.eclipse.wst.jsdt.core.dom.PostfixExpression; +import org.eclipse.wst.jsdt.core.dom.PrefixExpression; +import org.eclipse.wst.jsdt.core.dom.PrimitiveType; +import org.eclipse.wst.jsdt.core.dom.QualifiedName; +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.StringLiteral; +import org.eclipse.wst.jsdt.core.dom.SuperConstructorInvocation; +import org.eclipse.wst.jsdt.core.dom.SuperFieldAccess; +import org.eclipse.wst.jsdt.core.dom.SuperMethodInvocation; +import org.eclipse.wst.jsdt.core.dom.ThisExpression; +import org.eclipse.wst.jsdt.core.dom.TypeDeclaration; +import org.eclipse.wst.jsdt.core.dom.TypeLiteral; +import org.eclipse.wst.jsdt.core.dom.VariableDeclarationExpression; +import org.eclipse.wst.jsdt.core.dom.VariableDeclarationFragment; /** * @author oliviert * @@ -43,24 +91,7 @@ set.add(node); } } - - /** - * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(AnnotationTypeDeclaration) - * @since 3.0 - */ - public void endVisit(AnnotationTypeDeclaration node) { - ITypeBinding typeBinding = node.resolveBinding(); - collectBindings(node, typeBinding); - } - - /** - * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(AnnotationTypeMemberDeclaration) - * @since 3.0 - */ - public void endVisit(AnnotationTypeMemberDeclaration node) { - IFunctionBinding binding = node.resolveBinding(); - collectBindings(node, binding); - } + /** * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(AnonymousClassDeclaration) @@ -157,25 +188,7 @@ IFunctionBinding methodBinding = node.resolveConstructorBinding(); collectBindings(node, methodBinding); } - - /** - * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(EnumConstantDeclaration) - * @since 3.0 - */ - public void endVisit(EnumConstantDeclaration node) { - IVariableBinding binding = node.resolveVariable(); - collectBindings(node, binding); - } - - /** - * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(EnumDeclaration) - * @since 3.0 - */ - public void endVisit(EnumDeclaration node) { - ITypeBinding typeBinding = node.resolveBinding(); - collectBindings(node, typeBinding); - } - + /** * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(FieldAccess) */
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ConverterTestSetup.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ConverterTestSetup.java index 63e73b9..f6a1978 100644 --- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ConverterTestSetup.java +++ b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ConverterTestSetup.java
@@ -17,14 +17,64 @@ import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; import org.eclipse.wst.jsdt.core.IClassFile; -import org.eclipse.wst.jsdt.core.IJavaScriptUnit; import org.eclipse.wst.jsdt.core.IJavaScriptProject; +import org.eclipse.wst.jsdt.core.IJavaScriptUnit; import org.eclipse.wst.jsdt.core.JavaScriptCore; import org.eclipse.wst.jsdt.core.JavaScriptModelException; import org.eclipse.wst.jsdt.core.compiler.IProblem; - import org.eclipse.wst.jsdt.core.compiler.libraries.SystemLibraryLocation; -import org.eclipse.wst.jsdt.core.dom.*; +import org.eclipse.wst.jsdt.core.dom.AST; +import org.eclipse.wst.jsdt.core.dom.ASTNode; +import org.eclipse.wst.jsdt.core.dom.ASTParser; +import org.eclipse.wst.jsdt.core.dom.ASTVisitor; +import org.eclipse.wst.jsdt.core.dom.AnonymousClassDeclaration; +import org.eclipse.wst.jsdt.core.dom.ArrayAccess; +import org.eclipse.wst.jsdt.core.dom.ArrayCreation; +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.BooleanLiteral; +import org.eclipse.wst.jsdt.core.dom.CastExpression; +import org.eclipse.wst.jsdt.core.dom.CharacterLiteral; +import org.eclipse.wst.jsdt.core.dom.ClassInstanceCreation; +import org.eclipse.wst.jsdt.core.dom.ConditionalExpression; +import org.eclipse.wst.jsdt.core.dom.ExpressionStatement; +import org.eclipse.wst.jsdt.core.dom.FieldAccess; +import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration; +import org.eclipse.wst.jsdt.core.dom.FunctionInvocation; +import org.eclipse.wst.jsdt.core.dom.FunctionRef; +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.MemberRef; +import org.eclipse.wst.jsdt.core.dom.NullLiteral; +import org.eclipse.wst.jsdt.core.dom.NumberLiteral; +import org.eclipse.wst.jsdt.core.dom.PackageDeclaration; +import org.eclipse.wst.jsdt.core.dom.ParameterizedType; +import org.eclipse.wst.jsdt.core.dom.ParenthesizedExpression; +import org.eclipse.wst.jsdt.core.dom.PostfixExpression; +import org.eclipse.wst.jsdt.core.dom.PrefixExpression; +import org.eclipse.wst.jsdt.core.dom.PrimitiveType; +import org.eclipse.wst.jsdt.core.dom.QualifiedName; +import org.eclipse.wst.jsdt.core.dom.QualifiedType; +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.StringLiteral; +import org.eclipse.wst.jsdt.core.dom.SuperFieldAccess; +import org.eclipse.wst.jsdt.core.dom.SuperMethodInvocation; +import org.eclipse.wst.jsdt.core.dom.ThisExpression; +import org.eclipse.wst.jsdt.core.dom.TypeDeclaration; +import org.eclipse.wst.jsdt.core.dom.TypeDeclarationStatement; +import org.eclipse.wst.jsdt.core.dom.TypeLiteral; +import org.eclipse.wst.jsdt.core.dom.TypeParameter; +import org.eclipse.wst.jsdt.core.dom.VariableDeclarationExpression; +import org.eclipse.wst.jsdt.core.dom.VariableDeclarationFragment; +import org.eclipse.wst.jsdt.core.dom.WildcardType; import org.eclipse.wst.jsdt.core.tests.util.Util; public abstract class ConverterTestSetup extends AbstractASTTests { @@ -208,21 +258,11 @@ super.endVisit(node); } - public void endVisit(MarkerAnnotation node) { - assertNotNull(node+" should have a binding", node.resolveTypeBinding()); - super.endVisit(node); - } - public void endVisit(FunctionInvocation node) { assertNotNull(node+" should have a binding", node.resolveTypeBinding()); super.endVisit(node); } - public void endVisit(NormalAnnotation node) { - assertNotNull(node+" should have a binding", node.resolveTypeBinding()); - super.endVisit(node); - } - public void endVisit(NullLiteral node) { assertNotNull(node+" should have a binding", node.resolveTypeBinding()); super.endVisit(node); @@ -248,11 +288,6 @@ super.endVisit(node); } - public void endVisit(SingleMemberAnnotation node) { - assertNotNull(node+" should have a binding", node.resolveTypeBinding()); - super.endVisit(node); - } - public void endVisit(StringLiteral node) { assertNotNull(node+" should have a binding", node.resolveTypeBinding()); super.endVisit(node); @@ -283,16 +318,6 @@ super.endVisit(node); } - public void endVisit(AnnotationTypeDeclaration node) { - assertNotNull(node+" should have a binding", node.resolveBinding()); - super.endVisit(node); - } - - public void endVisit(AnnotationTypeMemberDeclaration node) { - assertNotNull(node+" should have a binding", node.resolveBinding()); - super.endVisit(node); - } - public void endVisit(AnonymousClassDeclaration node) { assertNotNull(node+" should have a binding", node.resolveBinding()); super.endVisit(node); @@ -303,11 +328,6 @@ super.endVisit(node); } - public void endVisit(EnumDeclaration node) { - assertNotNull(node+" should have a binding", node.resolveBinding()); - super.endVisit(node); - } - public void endVisit(ImportDeclaration node) { assertNotNull(node+" should have a binding", node.resolveBinding()); super.endVisit(node);
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/SampleASTs.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/SampleASTs.java index ca5029f..a12e79c 100644 --- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/SampleASTs.java +++ b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/SampleASTs.java
@@ -15,7 +15,6 @@ import org.eclipse.wst.jsdt.core.dom.AST; import org.eclipse.wst.jsdt.core.dom.ASTNode; -import org.eclipse.wst.jsdt.core.dom.AnnotationTypeDeclaration; import org.eclipse.wst.jsdt.core.dom.AnonymousClassDeclaration; import org.eclipse.wst.jsdt.core.dom.ArrayAccess; import org.eclipse.wst.jsdt.core.dom.ArrayCreation; @@ -30,32 +29,28 @@ 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.JavaScriptUnit; import org.eclipse.wst.jsdt.core.dom.ConditionalExpression; import org.eclipse.wst.jsdt.core.dom.ConstructorInvocation; import org.eclipse.wst.jsdt.core.dom.ContinueStatement; import org.eclipse.wst.jsdt.core.dom.DoStatement; import org.eclipse.wst.jsdt.core.dom.EmptyStatement; import org.eclipse.wst.jsdt.core.dom.EnhancedForStatement; -import org.eclipse.wst.jsdt.core.dom.EnumConstantDeclaration; -import org.eclipse.wst.jsdt.core.dom.EnumDeclaration; 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.FunctionRef; 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.JSdoc; +import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit; import org.eclipse.wst.jsdt.core.dom.LabeledStatement; -import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration; -import org.eclipse.wst.jsdt.core.dom.FunctionInvocation; -import org.eclipse.wst.jsdt.core.dom.FunctionRef; -import org.eclipse.wst.jsdt.core.dom.Modifier; import org.eclipse.wst.jsdt.core.dom.Name; -import org.eclipse.wst.jsdt.core.dom.NormalAnnotation; import org.eclipse.wst.jsdt.core.dom.NullLiteral; import org.eclipse.wst.jsdt.core.dom.NumberLiteral; import org.eclipse.wst.jsdt.core.dom.PackageDeclaration; @@ -124,12 +119,6 @@ Initializer in = target.newInitializer(); td.bodyDeclarations().add(in); - if (target.apiLevel() >= AST.JLS3) { - EnumDeclaration ed = target.newEnumDeclaration(); - td.bodyDeclarations().add(ed); - EnumConstantDeclaration ec = target.newEnumConstantDeclaration(); - ed.enumConstants().add(ec); - } FunctionDeclaration md = target.newFunctionDeclaration(); SingleVariableDeclaration singleVariableDeclaration = target.newSingleVariableDeclaration(); @@ -272,18 +261,7 @@ VariableDeclarationExpression variableDeclarationExpression = target.newVariableDeclarationExpression(variableDeclarationFragment3); z.add(variableDeclarationExpression); - // annotations - if (target.apiLevel() >= AST.JLS3) { - AnnotationTypeDeclaration atd = target.newAnnotationTypeDeclaration(); - cu.types().add(atd); - atd.bodyDeclarations().add(target.newAnnotationTypeMemberDeclaration()); - td.modifiers().add(target.newMarkerAnnotation()); - td.modifiers().add(target.newSingleMemberAnnotation()); - NormalAnnotation an0 = target.newNormalAnnotation(); - td.modifiers().add(an0); - an0.values().add(target.newMemberValuePair()); - td.modifiers().add(target.newModifier(Modifier.ModifierKeyword.PRIVATE_KEYWORD)); - } + return cu; }
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/DefaultJavaElementComparator.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/DefaultJavaElementComparator.java index 45ad39d..385264b 100644 --- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/DefaultJavaElementComparator.java +++ b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/DefaultJavaElementComparator.java
@@ -16,13 +16,11 @@ import org.eclipse.wst.jsdt.core.Flags; import org.eclipse.wst.jsdt.core.dom.ASTNode; import org.eclipse.wst.jsdt.core.dom.AbstractTypeDeclaration; -import org.eclipse.wst.jsdt.core.dom.AnnotationTypeMemberDeclaration; import org.eclipse.wst.jsdt.core.dom.ArrayType; import org.eclipse.wst.jsdt.core.dom.BodyDeclaration; -import org.eclipse.wst.jsdt.core.dom.EnumConstantDeclaration; import org.eclipse.wst.jsdt.core.dom.FieldDeclaration; -import org.eclipse.wst.jsdt.core.dom.Initializer; import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration; +import org.eclipse.wst.jsdt.core.dom.Initializer; import org.eclipse.wst.jsdt.core.dom.Name; import org.eclipse.wst.jsdt.core.dom.PrimitiveType; import org.eclipse.wst.jsdt.core.dom.QualifiedName; @@ -177,22 +175,13 @@ return this.categories[STATIC_METHOD_CATEGORY]; } return this.categories[METHOD_CATEGORY]; - case ASTNode.ANNOTATION_TYPE_MEMBER_DECLARATION : - if (Flags.isStatic(node.getModifiers())) { - return this.categories[STATIC_METHOD_CATEGORY]; - } - return this.categories[METHOD_CATEGORY]; case ASTNode.FIELD_DECLARATION : FieldDeclaration fieldDeclaration = (FieldDeclaration) node; if (Flags.isStatic(fieldDeclaration.getModifiers())) { return this.categories[STATIC_FIELD_CATEGORY]; } return this.categories[FIELD_CATEGORY]; - case ASTNode.ENUM_CONSTANT_DECLARATION : - return this.categories[STATIC_FIELD_CATEGORY]; case ASTNode.TYPE_DECLARATION : - case ASTNode.ENUM_DECLARATION : - case ASTNode.ANNOTATION_TYPE_DECLARATION : AbstractTypeDeclaration abstractTypeDeclaration = (AbstractTypeDeclaration) node; if (Flags.isStatic(abstractTypeDeclaration.getModifiers())) { return this.categories[STATIC_TYPE_CATEGORY]; @@ -263,20 +252,12 @@ buffer.append(buildSignature(type)); } return String.valueOf(buffer); - case ASTNode.ANNOTATION_TYPE_MEMBER_DECLARATION : - AnnotationTypeMemberDeclaration annotationTypeMemberDeclaration = (AnnotationTypeMemberDeclaration) node; - return annotationTypeMemberDeclaration.getName().getIdentifier(); case ASTNode.FIELD_DECLARATION : FieldDeclaration fieldDeclaration = (FieldDeclaration) node; return ((VariableDeclarationFragment) fieldDeclaration.fragments().get(0)).getName().getIdentifier(); - case ASTNode.ENUM_CONSTANT_DECLARATION : - EnumConstantDeclaration enumConstantDeclaration = (EnumConstantDeclaration) node; - return enumConstantDeclaration.getName().getIdentifier(); case ASTNode.INITIALIZER : return ((Integer) node.getProperty(JavaScriptUnitSorter.RELATIVE_ORDER)).toString(); case ASTNode.TYPE_DECLARATION : - case ASTNode.ENUM_DECLARATION : - case ASTNode.ANNOTATION_TYPE_DECLARATION : AbstractTypeDeclaration abstractTypeDeclaration = (AbstractTypeDeclaration) node; return abstractTypeDeclaration.getName().getIdentifier(); }
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SortCompilationUnitElementsTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SortCompilationUnitElementsTests.java index d7d5f41..8532f86 100644 --- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SortCompilationUnitElementsTests.java +++ b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SortCompilationUnitElementsTests.java
@@ -24,10 +24,8 @@ import org.eclipse.wst.jsdt.core.IJavaScriptUnit; import org.eclipse.wst.jsdt.core.JavaScriptModelException; import org.eclipse.wst.jsdt.core.dom.AST; -import org.eclipse.wst.jsdt.core.dom.ASTNode; import org.eclipse.wst.jsdt.core.dom.ASTParser; import org.eclipse.wst.jsdt.core.dom.BodyDeclaration; -import org.eclipse.wst.jsdt.core.dom.EnumConstantDeclaration; import org.eclipse.wst.jsdt.core.util.JavaScriptUnitSorter; import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions; @@ -2018,12 +2016,6 @@ Comparator comparator = new Comparator() { public int compare(Object o1, Object o2) { - switch(((ASTNode) o1).getNodeType()) { - case ASTNode.ENUM_CONSTANT_DECLARATION : - if (o2 instanceof EnumConstantDeclaration) { - return ((EnumConstantDeclaration) o1).getName().getIdentifier().compareTo(((EnumConstantDeclaration) o2).getName().getIdentifier()); - } - } BodyDeclaration bodyDeclaration1 = (BodyDeclaration) o1; BodyDeclaration bodyDeclaration2 = (BodyDeclaration) o2; final int sourceStart1 = ((Integer) bodyDeclaration1.getProperty(JavaScriptUnitSorter.RELATIVE_ORDER)).intValue();
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingMethodDeclTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingMethodDeclTest.java index bd71571..40d577e 100644 --- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingMethodDeclTest.java +++ b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingMethodDeclTest.java
@@ -19,7 +19,29 @@ import org.eclipse.wst.jsdt.core.IJavaScriptUnit; import org.eclipse.wst.jsdt.core.IPackageFragment; -import org.eclipse.wst.jsdt.core.dom.*; +import org.eclipse.wst.jsdt.core.dom.AST; +import org.eclipse.wst.jsdt.core.dom.ASTNode; +import org.eclipse.wst.jsdt.core.dom.Block; +import org.eclipse.wst.jsdt.core.dom.ExpressionStatement; +import org.eclipse.wst.jsdt.core.dom.FieldDeclaration; +import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration; +import org.eclipse.wst.jsdt.core.dom.FunctionInvocation; +import org.eclipse.wst.jsdt.core.dom.Initializer; +import org.eclipse.wst.jsdt.core.dom.JSdoc; +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.PrimitiveType; +import org.eclipse.wst.jsdt.core.dom.SimpleName; +import org.eclipse.wst.jsdt.core.dom.SingleVariableDeclaration; +import org.eclipse.wst.jsdt.core.dom.TagElement; +import org.eclipse.wst.jsdt.core.dom.TextElement; +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.TypeParameter; +import org.eclipse.wst.jsdt.core.dom.VariableDeclarationExpression; +import org.eclipse.wst.jsdt.core.dom.VariableDeclarationFragment; import org.eclipse.wst.jsdt.core.dom.rewrite.ASTRewrite; import org.eclipse.wst.jsdt.core.dom.rewrite.ListRewrite; @@ -1594,131 +1616,8 @@ assertEqualString(preview, buf.toString()); } - public void testModifiersAST3WithAnnotations() throws Exception { - IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); - StringBuffer buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public abstract class E {\n"); - buf.append(" public Object foo1() { return null; }\n"); - buf.append(" /** javadoc comment */\n"); - buf.append(" @Deprecated\n"); - buf.append(" public Object foo2() { return null; }\n"); - buf.append(" @ToBeRemoved\n"); - buf.append(" public Object foo3() { return null; }\n"); - buf.append(" /** javadoc comment */\n"); - buf.append(" @ToBeRemoved\n"); - buf.append(" @Deprecated\n"); - buf.append(" public Object foo4() { return null; }\n"); - buf.append("}\n"); - IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null); - - JavaScriptUnit astRoot= createAST3(cu); - ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); - AST ast= astRoot.getAST(); - TypeDeclaration type= findTypeDeclaration(astRoot, "E"); - - { // insert annotation first before normal - FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo1"); - ListRewrite listRewrite= rewrite.getListRewrite(methodDecl, FunctionDeclaration.MODIFIERS2_PROPERTY); - MarkerAnnotation annot= ast.newMarkerAnnotation(); - annot.setTypeName(ast.newSimpleName("Override")); - listRewrite.insertFirst(annot, null); - } - { // insert annotation first before annotation - FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo2"); - ListRewrite listRewrite= rewrite.getListRewrite(methodDecl, FunctionDeclaration.MODIFIERS2_PROPERTY); - MarkerAnnotation annot= ast.newMarkerAnnotation(); - annot.setTypeName(ast.newSimpleName("Override")); - listRewrite.insertFirst(annot, null); - } - { // remove annotation before normal - FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo3"); - rewrite.remove((ASTNode) methodDecl.modifiers().get(0), null); - } - { // remove annotation before annotation - FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo4"); - rewrite.remove((ASTNode) methodDecl.modifiers().get(0), null); - } - - String preview= evaluateRewrite(cu, rewrite); - - buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public abstract class E {\n"); - buf.append(" @Override\n"); - buf.append(" public Object foo1() { return null; }\n"); - buf.append(" /** javadoc comment */\n"); - buf.append(" @Override\n"); - buf.append(" @Deprecated\n"); - buf.append(" public Object foo2() { return null; }\n"); - buf.append(" public Object foo3() { return null; }\n"); - buf.append(" /** javadoc comment */\n"); - buf.append(" @Deprecated\n"); - buf.append(" public Object foo4() { return null; }\n"); - buf.append("}\n"); - assertEqualString(preview, buf.toString()); - } - - public void testModifiersAST3WithAnnotations2() throws Exception { - IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); - StringBuffer buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public abstract class E {\n"); - buf.append(" Object foo1() { return null; }\n"); - buf.append(" Object foo2() { return null; }\n"); - buf.append(" @Deprecated()Object foo3() { return null; }\n"); - buf.append(" @Deprecated()Object foo4() { return null; }\n"); - buf.append("}\n"); - IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null); - - JavaScriptUnit astRoot= createAST3(cu); - ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); - AST ast= astRoot.getAST(); - TypeDeclaration type= findTypeDeclaration(astRoot, "E"); - - { // insert annotation first - FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo1"); - ListRewrite listRewrite= rewrite.getListRewrite(methodDecl, FunctionDeclaration.MODIFIERS2_PROPERTY); - MarkerAnnotation annot= ast.newMarkerAnnotation(); - annot.setTypeName(ast.newSimpleName("Override")); - listRewrite.insertFirst(annot, null); - } - { // insert modifier first - FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo2"); - ListRewrite listRewrite= rewrite.getListRewrite(methodDecl, FunctionDeclaration.MODIFIERS2_PROPERTY); - Modifier modifier= ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD); - listRewrite.insertFirst(modifier, null); - } - { // insert modifier last - FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo3"); - ListRewrite listRewrite= rewrite.getListRewrite(methodDecl, FunctionDeclaration.MODIFIERS2_PROPERTY); - Modifier modifier= ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD); - listRewrite.insertLast(modifier, null); - } - { // insert modifier first - FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo4"); - ListRewrite listRewrite= rewrite.getListRewrite(methodDecl, FunctionDeclaration.MODIFIERS2_PROPERTY); - Modifier modifier= ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD); - listRewrite.insertFirst(modifier, null); - } - - String preview= evaluateRewrite(cu, rewrite); - - buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public abstract class E {\n"); - buf.append(" @Override\n"); - buf.append(" Object foo1() { return null; }\n"); - buf.append(" public Object foo2() { return null; }\n"); - buf.append(" @Deprecated()\n"); - buf.append(" public Object foo3() { return null; }\n"); - buf.append(" public @Deprecated()Object foo4() { return null; }\n"); - buf.append("}\n"); - assertEqualString(preview, buf.toString()); - } - public void testFieldDeclaration() throws Exception { IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); StringBuffer buf= new StringBuffer(); @@ -2339,289 +2238,6 @@ assertEqualString(preview, buf.toString()); } - public void testAnnotationTypeMember() throws Exception { - - IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); - StringBuffer buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public @interface DD {\n"); - buf.append(" public String value1();\n"); - buf.append(" String value2() default 1;\n"); - buf.append(" String value3() default 2;\n"); - buf.append("}\n"); - IJavaScriptUnit cu= pack1.createCompilationUnit("DD.js", buf.toString(), false, null); - - JavaScriptUnit astRoot= createAST3(cu); - AST ast= astRoot.getAST(); - ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); - AnnotationTypeDeclaration type= (AnnotationTypeDeclaration) findAbstractTypeDeclaration(astRoot, "DD"); - { - AnnotationTypeMemberDeclaration methodDecl= (AnnotationTypeMemberDeclaration) type.bodyDeclarations().get(0); - rewrite.remove((ASTNode) methodDecl.modifiers().get(0), null); - rewrite.set(methodDecl, AnnotationTypeMemberDeclaration.TYPE_PROPERTY, ast.newPrimitiveType(PrimitiveType.BOOLEAN), null); - rewrite.set(methodDecl, AnnotationTypeMemberDeclaration.NAME_PROPERTY, ast.newSimpleName("test"), null); - - rewrite.set(methodDecl, AnnotationTypeMemberDeclaration.DEFAULT_PROPERTY, ast.newNumberLiteral("1"), null); - } - { - AnnotationTypeMemberDeclaration methodDecl= (AnnotationTypeMemberDeclaration) type.bodyDeclarations().get(1); - rewrite.getListRewrite(methodDecl, AnnotationTypeMemberDeclaration.MODIFIERS2_PROPERTY).insertFirst(ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD), null); - rewrite.set(methodDecl, AnnotationTypeMemberDeclaration.DEFAULT_PROPERTY, ast.newNumberLiteral("2"), null); - } - { - AnnotationTypeMemberDeclaration methodDecl= (AnnotationTypeMemberDeclaration) type.bodyDeclarations().get(2); - rewrite.set(methodDecl, AnnotationTypeMemberDeclaration.DEFAULT_PROPERTY, null, null); - } - - String preview= evaluateRewrite(cu, rewrite); - - buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public @interface DD {\n"); - buf.append(" boolean test() default 1;\n"); - buf.append(" public String value2() default 2;\n"); - buf.append(" String value3();\n"); - buf.append("}\n"); - assertEqualString(preview, buf.toString()); - } - - public void testEnumConstantDeclaration1() throws Exception { - - IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); - StringBuffer buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum DD {\n"); - buf.append(" E1(1), E2, E3(), E4(1, 2)\n"); - buf.append("}\n"); - IJavaScriptUnit cu= pack1.createCompilationUnit("DD.js", buf.toString(), false, null); - - JavaScriptUnit astRoot= createAST3(cu); - AST ast= astRoot.getAST(); - ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); - EnumDeclaration type= (EnumDeclaration) findAbstractTypeDeclaration(astRoot, "DD"); - { - EnumConstantDeclaration enumConst= (EnumConstantDeclaration) type.enumConstants().get(0); - rewrite.set(enumConst, EnumConstantDeclaration.NAME_PROPERTY, ast.newSimpleName("X"), null); - ListRewrite listRewrite= rewrite.getListRewrite(enumConst, EnumConstantDeclaration.ARGUMENTS_PROPERTY); - listRewrite.remove((ASTNode) enumConst.arguments().get(0), null); - } - { - EnumConstantDeclaration enumConst= (EnumConstantDeclaration) type.enumConstants().get(1); - ListRewrite listRewrite= rewrite.getListRewrite(enumConst, EnumConstantDeclaration.ARGUMENTS_PROPERTY); - listRewrite.insertFirst(ast.newNumberLiteral("1"), null); - } - { - EnumConstantDeclaration enumConst= (EnumConstantDeclaration) type.enumConstants().get(2); - ListRewrite listRewrite= rewrite.getListRewrite(enumConst, EnumConstantDeclaration.ARGUMENTS_PROPERTY); - listRewrite.insertFirst(ast.newNumberLiteral("2"), null); - } - { - EnumConstantDeclaration enumConst= (EnumConstantDeclaration) type.enumConstants().get(3); - ListRewrite listRewrite= rewrite.getListRewrite(enumConst, EnumConstantDeclaration.ARGUMENTS_PROPERTY); - listRewrite.remove((ASTNode) enumConst.arguments().get(0), null); - } - - String preview= evaluateRewrite(cu, rewrite); - - buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum DD {\n"); - buf.append(" X, E2(1), E3(2), E4(2)\n"); - buf.append("}\n"); - assertEqualString(preview, buf.toString()); - } - - public void testEnumConstantDeclaration2() throws Exception { - IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); - StringBuffer buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum DD {\n"); - buf.append(" E1Add(1),\n"); - buf.append(" E2Add,\n"); - buf.append(" E3Add(1),\n"); - buf.append(" E4Add(1),\n"); - buf.append(" E5Add(1) {\n"); - buf.append(" public void foo() {\n"); - buf.append(" }\n"); - buf.append(" },\n"); - buf.append(" E1Remove(1) {\n"); - buf.append(" public void foo() {\n"); - buf.append(" }\n"); - buf.append(" },\n"); - buf.append(" E2Remove {\n"); - buf.append(" public void foo() {\n"); - buf.append(" }\n"); - buf.append(" },\n"); - buf.append(" E3Remove(1) {\n"); - buf.append(" public void foo() {\n"); - buf.append(" }\n"); - buf.append(" },\n"); - buf.append(" E4Remove(1) {\n"); - buf.append(" public void foo() {\n"); - buf.append(" }\n"); - buf.append(" }\n"); - buf.append("}\n"); - IJavaScriptUnit cu= pack1.createCompilationUnit("DD.js", buf.toString(), false, null); - - JavaScriptUnit astRoot= createAST3(cu); - AST ast= astRoot.getAST(); - ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); - EnumDeclaration type= (EnumDeclaration) findAbstractTypeDeclaration(astRoot, "DD"); - { - EnumConstantDeclaration enumConst= (EnumConstantDeclaration) type.enumConstants().get(0); - assertNull(enumConst.getAnonymousClassDeclaration()); - - AnonymousClassDeclaration classDecl= ast.newAnonymousClassDeclaration(); - ListRewrite bodyRewrite= rewrite.getListRewrite(classDecl, AnonymousClassDeclaration.BODY_DECLARATIONS_PROPERTY); - bodyRewrite.insertFirst(createNewMethod(ast, "test", false), null); - - rewrite.set(enumConst, EnumConstantDeclaration.ANONYMOUS_CLASS_DECLARATION_PROPERTY, classDecl, null); - } - { - EnumConstantDeclaration enumConst= (EnumConstantDeclaration) type.enumConstants().get(1); - assertNull(enumConst.getAnonymousClassDeclaration()); - - ListRewrite argsRewrite= rewrite.getListRewrite(enumConst, EnumConstantDeclaration.ARGUMENTS_PROPERTY); - argsRewrite.insertFirst(ast.newNumberLiteral("1"), null); - - AnonymousClassDeclaration classDecl= ast.newAnonymousClassDeclaration(); - ListRewrite bodyRewrite= rewrite.getListRewrite(classDecl, AnonymousClassDeclaration.BODY_DECLARATIONS_PROPERTY); - bodyRewrite.insertFirst(createNewMethod(ast, "test", false), null); - - rewrite.set(enumConst, EnumConstantDeclaration.ANONYMOUS_CLASS_DECLARATION_PROPERTY, classDecl, null); - - } - { - EnumConstantDeclaration enumConst= (EnumConstantDeclaration) type.enumConstants().get(2); - assertNull(enumConst.getAnonymousClassDeclaration()); - - rewrite.remove((ASTNode) enumConst.arguments().get(0), null); - - AnonymousClassDeclaration classDecl= ast.newAnonymousClassDeclaration(); - ListRewrite bodyRewrite= rewrite.getListRewrite(classDecl, AnonymousClassDeclaration.BODY_DECLARATIONS_PROPERTY); - bodyRewrite.insertFirst(createNewMethod(ast, "test", false), null); - - rewrite.set(enumConst, EnumConstantDeclaration.ANONYMOUS_CLASS_DECLARATION_PROPERTY, classDecl, null); - } - { - EnumConstantDeclaration enumConst= (EnumConstantDeclaration) type.enumConstants().get(3); - assertNull(enumConst.getAnonymousClassDeclaration()); - - AnonymousClassDeclaration classDecl= ast.newAnonymousClassDeclaration(); - rewrite.set(enumConst, EnumConstantDeclaration.ANONYMOUS_CLASS_DECLARATION_PROPERTY, classDecl, null); - } - { - EnumConstantDeclaration enumConst= (EnumConstantDeclaration) type.enumConstants().get(4); - - AnonymousClassDeclaration classDecl= enumConst.getAnonymousClassDeclaration(); - assertNotNull(classDecl); - - ListRewrite bodyRewrite= rewrite.getListRewrite(classDecl, AnonymousClassDeclaration.BODY_DECLARATIONS_PROPERTY); - bodyRewrite.insertFirst(createNewMethod(ast, "test", false), null); - } - { - EnumConstantDeclaration enumConst= (EnumConstantDeclaration) type.enumConstants().get(5); - - AnonymousClassDeclaration classDecl= enumConst.getAnonymousClassDeclaration(); - assertNotNull(classDecl); - - rewrite.remove(classDecl, null); - } - { - EnumConstantDeclaration enumConst= (EnumConstantDeclaration) type.enumConstants().get(6); - - AnonymousClassDeclaration classDecl= enumConst.getAnonymousClassDeclaration(); - assertNotNull(classDecl); - - ListRewrite argsRewrite= rewrite.getListRewrite(enumConst, EnumConstantDeclaration.ARGUMENTS_PROPERTY); - argsRewrite.insertFirst(ast.newNumberLiteral("1"), null); - - rewrite.remove(classDecl, null); - } - { - EnumConstantDeclaration enumConst= (EnumConstantDeclaration) type.enumConstants().get(7); - - AnonymousClassDeclaration classDecl= enumConst.getAnonymousClassDeclaration(); - assertNotNull(classDecl); - - rewrite.remove((ASTNode) enumConst.arguments().get(0), null); - rewrite.remove(classDecl, null); - } - { - EnumConstantDeclaration enumConst= (EnumConstantDeclaration) type.enumConstants().get(8); - - AnonymousClassDeclaration classDecl= enumConst.getAnonymousClassDeclaration(); - assertNotNull(classDecl); - - rewrite.remove((ASTNode) classDecl.bodyDeclarations().get(0), null); - } - - - String preview= evaluateRewrite(cu, rewrite); - - buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum DD {\n"); - buf.append(" E1Add(1) {\n"); - buf.append(" private void test(String str) {\n"); - buf.append(" }\n"); - buf.append(" },\n"); - buf.append(" E2Add(1) {\n"); - buf.append(" private void test(String str) {\n"); - buf.append(" }\n"); - buf.append(" },\n"); - buf.append(" E3Add {\n"); - buf.append(" private void test(String str) {\n"); - buf.append(" }\n"); - buf.append(" },\n"); - buf.append(" E4Add(1) {\n"); - buf.append(" },\n"); - buf.append(" E5Add(1) {\n"); - buf.append(" private void test(String str) {\n"); - buf.append(" }\n"); - buf.append("\n"); - buf.append(" public void foo() {\n"); - buf.append(" }\n"); - buf.append(" },\n"); - buf.append(" E1Remove(1),\n"); - buf.append(" E2Remove(1),\n"); - buf.append(" E3Remove,\n"); - buf.append(" E4Remove(1) {\n"); - buf.append(" }\n"); - buf.append("}\n"); - assertEqualString(preview, buf.toString()); - } - - public void testEnumConstantDeclaration_bug114119() throws Exception { - IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); - StringBuffer buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum DD {\n"); - buf.append(" RED, BROWN(), GREEN(){};\n"); - buf.append("}\n"); - IJavaScriptUnit cu= pack1.createCompilationUnit("DD.js", buf.toString(), false, null); - - JavaScriptUnit astRoot= createAST3(cu); - ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); - EnumDeclaration type= (EnumDeclaration) findAbstractTypeDeclaration(astRoot, "DD"); - { - EnumConstantDeclaration enumConst= (EnumConstantDeclaration) type.enumConstants().get(2); - assertNotNull(enumConst.getAnonymousClassDeclaration()); - - rewrite.remove(enumConst.getAnonymousClassDeclaration(), null); - } - - - String preview= evaluateRewrite(cu, rewrite); - - buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum DD {\n"); - buf.append(" RED, BROWN(), GREEN();\n"); - buf.append("}\n"); - assertEqualString(preview, buf.toString()); - } - public void testMethodDeclChangesBug77538() throws Exception { IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); @@ -2674,96 +2290,5 @@ assertFalse("Invalid extended length for "+body, astRoot.getExtendedLength(body)<0); } - public void testAnnotations() throws Exception { - IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); - StringBuffer buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("@An\n"); - buf.append("@An()\n"); - buf.append("@An(val=1, val=2)\n"); - buf.append("@An(val=1, val=2)\n"); - buf.append("@An(1)\n"); - buf.append("class E {\n"); - buf.append("}\n"); - IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null); - - JavaScriptUnit astRoot= createAST3(cu); - ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); - AST ast= astRoot.getAST(); - TypeDeclaration type= findTypeDeclaration(astRoot, "E"); - List modifiers= type.modifiers(); - assertEquals(5, modifiers.size()); - { - MarkerAnnotation an= (MarkerAnnotation) modifiers.get(0); - SimpleName newName= ast.newSimpleName("X"); - rewrite.set(an, MarkerAnnotation.TYPE_NAME_PROPERTY, newName, null); - } - { - NormalAnnotation an= (NormalAnnotation) modifiers.get(1); - SimpleName newName= ast.newSimpleName("X"); - rewrite.set(an, NormalAnnotation.TYPE_NAME_PROPERTY, newName, null); - - ListRewrite listRewrite= rewrite.getListRewrite(an, NormalAnnotation.VALUES_PROPERTY); - - MemberValuePair newPair= ast.newMemberValuePair(); - newPair.setName(ast.newSimpleName("foo")); - newPair.setValue(ast.newNumberLiteral("0")); - - listRewrite.insertFirst(newPair, null); - } - { - NormalAnnotation an= (NormalAnnotation) modifiers.get(2); - SimpleName newName= ast.newSimpleName("X"); - rewrite.set(an, NormalAnnotation.TYPE_NAME_PROPERTY, newName, null); - - List values= an.values(); - - ListRewrite listRewrite= rewrite.getListRewrite(an, NormalAnnotation.VALUES_PROPERTY); - listRewrite.remove((ASTNode) values.get(0), null); - - MemberValuePair p= (MemberValuePair) values.get(1); - SimpleName newMember= ast.newSimpleName("Y"); - SimpleName newValue= ast.newSimpleName("Z"); - rewrite.set(p, MemberValuePair.NAME_PROPERTY, newMember, null); - rewrite.set(p, MemberValuePair.VALUE_PROPERTY, newValue, null); - - MemberValuePair newPair= ast.newMemberValuePair(); - newPair.setName(ast.newSimpleName("foo")); - newPair.setValue(ast.newNumberLiteral("0")); - - listRewrite.insertLast(newPair, null); - } - { - NormalAnnotation an= (NormalAnnotation) modifiers.get(3); - SimpleName newName= ast.newSimpleName("X"); - rewrite.set(an, NormalAnnotation.TYPE_NAME_PROPERTY, newName, null); - - List values= an.values(); - - ListRewrite listRewrite= rewrite.getListRewrite(an, NormalAnnotation.VALUES_PROPERTY); - listRewrite.remove((ASTNode) values.get(0), null); - listRewrite.remove((ASTNode) values.get(1), null); - } - { - SingleMemberAnnotation an= (SingleMemberAnnotation) modifiers.get(4); - SimpleName newName= ast.newSimpleName("X"); - rewrite.set(an, SingleMemberAnnotation.TYPE_NAME_PROPERTY, newName, null); - rewrite.set(an, SingleMemberAnnotation.VALUE_PROPERTY, ast.newBooleanLiteral(true), null); - } - - - String preview= evaluateRewrite(cu, rewrite); - - buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("@X\n"); - buf.append("@X(foo = 0)\n"); - buf.append("@X(Y=Z, foo = 0)\n"); - buf.append("@X()\n"); - buf.append("@X(true)\n"); - buf.append("class E {\n"); - buf.append("}\n"); - assertEqualString(preview, buf.toString()); - } }
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingTypeDeclTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingTypeDeclTest.java index 4903582..e2eec7f 100644 --- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingTypeDeclTest.java +++ b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingTypeDeclTest.java
@@ -17,8 +17,31 @@ import org.eclipse.wst.jsdt.core.IJavaScriptUnit; import org.eclipse.wst.jsdt.core.IPackageFragment; - -import org.eclipse.wst.jsdt.core.dom.*; +import org.eclipse.wst.jsdt.core.dom.AST; +import org.eclipse.wst.jsdt.core.dom.ASTNode; +import org.eclipse.wst.jsdt.core.dom.AnonymousClassDeclaration; +import org.eclipse.wst.jsdt.core.dom.ArrayType; +import org.eclipse.wst.jsdt.core.dom.Block; +import org.eclipse.wst.jsdt.core.dom.ClassInstanceCreation; +import org.eclipse.wst.jsdt.core.dom.Expression; +import org.eclipse.wst.jsdt.core.dom.ExpressionStatement; +import org.eclipse.wst.jsdt.core.dom.FieldDeclaration; +import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration; +import org.eclipse.wst.jsdt.core.dom.ImportDeclaration; +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.PackageDeclaration; +import org.eclipse.wst.jsdt.core.dom.ParameterizedType; +import org.eclipse.wst.jsdt.core.dom.PrimitiveType; +import org.eclipse.wst.jsdt.core.dom.SimpleName; +import org.eclipse.wst.jsdt.core.dom.SingleVariableDeclaration; +import org.eclipse.wst.jsdt.core.dom.Type; +import org.eclipse.wst.jsdt.core.dom.TypeDeclaration; +import org.eclipse.wst.jsdt.core.dom.TypeParameter; +import org.eclipse.wst.jsdt.core.dom.VariableDeclarationFragment; +import org.eclipse.wst.jsdt.core.dom.VariableDeclarationStatement; +import org.eclipse.wst.jsdt.core.dom.WildcardType; import org.eclipse.wst.jsdt.core.dom.rewrite.ASTRewrite; import org.eclipse.wst.jsdt.core.dom.rewrite.ListRewrite; @@ -1154,367 +1177,6 @@ } - public void testEnumDeclaration() throws Exception { - // test the creation of an enum declaration - - IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); - StringBuffer buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public class E {\n"); - buf.append("}\n"); - IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null); - - JavaScriptUnit astRoot= createAST3(cu); - ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); - AST ast= astRoot.getAST(); - - TypeDeclaration type= findTypeDeclaration(astRoot, "E"); - List members= type.bodyDeclarations(); - assertTrue("Has declarations", members.isEmpty()); - - ListRewrite declarations= rewrite.getListRewrite(type, TypeDeclaration.BODY_DECLARATIONS_PROPERTY); - { // insert an enum inner class - EnumDeclaration enumD= ast.newEnumDeclaration(); - - // where fEnumName is a String - SimpleName enumName= ast.newSimpleName("MyEnum"); - enumD.setName(enumName); - List enumStatements= enumD.enumConstants(); - - String[] names= { "a", "b", "c" }; - - // where fFieldsToExtract is an array of SimpleNames - for (int i= 0; i < names.length; i++) { - String curr= names[i]; - EnumConstantDeclaration constDecl= ast.newEnumConstantDeclaration(); - constDecl.setName(ast.newSimpleName(curr)); - enumStatements.add(constDecl); - } - - declarations.insertFirst(enumD, null); - } - - String preview= evaluateRewrite(cu, rewrite); - - buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public class E {\n"); - buf.append("\n"); - buf.append(" enum MyEnum {\n"); - buf.append(" a, b, c\n"); - buf.append(" }\n"); - buf.append("}\n"); - assertEqualString(preview, buf.toString()); - } - - - public void testEnumDeclaration1() throws Exception { - // test the creation of an enum declaration - - IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); - StringBuffer buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum E {\n"); - buf.append("}\n"); - IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null); - - JavaScriptUnit astRoot= createAST3(cu); - ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); - AST ast= astRoot.getAST(); - - EnumDeclaration declaration= (EnumDeclaration) findAbstractTypeDeclaration(astRoot, "E"); - - List members= declaration.bodyDeclarations(); - assertTrue("Has declarations", members.isEmpty()); - - ListRewrite declarations= rewrite.getListRewrite(declaration, EnumDeclaration.ENUM_CONSTANTS_PROPERTY); - EnumConstantDeclaration constDecl= ast.newEnumConstantDeclaration(); - constDecl.setName(ast.newSimpleName("A")); - - declarations.insertFirst(constDecl, null); - - - String preview= evaluateRewrite(cu, rewrite); - - buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum E {\n"); - buf.append(" A\n"); - buf.append("}\n"); - assertEqualString(preview, buf.toString()); - } - - - public void testEnumDeclaration2() throws Exception { - - IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); - StringBuffer buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum E {\n"); - buf.append(" A, B, C\n"); - buf.append("}\n"); - IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null); - - JavaScriptUnit astRoot= createAST3(cu); - ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); - AST ast= astRoot.getAST(); - - EnumDeclaration declaration= (EnumDeclaration) findAbstractTypeDeclaration(astRoot, "E"); - - { - // remove first, insert after 2nd - rewrite.remove((ASTNode) declaration.enumConstants().get(0), null); - - ASTNode newNode= ast.newSimpleName("X"); - - ListRewrite listRewrite= rewrite.getListRewrite(declaration, EnumDeclaration.ENUM_CONSTANTS_PROPERTY); - listRewrite.insertAfter(newNode, (ASTNode) declaration.enumConstants().get(1), null); - - // add body declaration - - ListRewrite bodyListRewrite= rewrite.getListRewrite(declaration, EnumDeclaration.BODY_DECLARATIONS_PROPERTY); - bodyListRewrite.insertFirst(createNewMethod(ast, "foo", false), null); - } - - String preview= evaluateRewrite(cu, rewrite); - - buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum E {\n"); - buf.append(" B, X, C;\n"); - buf.append("\n"); - buf.append(" private void foo(String str) {\n"); - buf.append(" }\n"); - buf.append("}\n"); - assertEqualString(preview, buf.toString()); - } - - public void testEnumDeclaration3() throws Exception { - - IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); - StringBuffer buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum E {\n"); - buf.append(" A, B, C;\n"); - buf.append("}\n"); - IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null); - - JavaScriptUnit astRoot= createAST3(cu); - ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); - AST ast= astRoot.getAST(); - - EnumDeclaration declaration= (EnumDeclaration) findAbstractTypeDeclaration(astRoot, "E"); - - { - // remove first, insert after 2nd - rewrite.remove((ASTNode) declaration.enumConstants().get(0), null); - - ASTNode newNode= ast.newSimpleName("X"); - - ListRewrite listRewrite= rewrite.getListRewrite(declaration, EnumDeclaration.ENUM_CONSTANTS_PROPERTY); - listRewrite.insertAfter(newNode, (ASTNode) declaration.enumConstants().get(1), null); - - // add body declaration - - ListRewrite bodyListRewrite= rewrite.getListRewrite(declaration, EnumDeclaration.BODY_DECLARATIONS_PROPERTY); - bodyListRewrite.insertFirst(createNewMethod(ast, "foo", false), null); - } - - String preview= evaluateRewrite(cu, rewrite); - - buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum E {\n"); - buf.append(" B, X, C;\n"); - buf.append("\n"); - buf.append(" private void foo(String str) {\n"); - buf.append(" }\n"); - buf.append("}\n"); - assertEqualString(preview, buf.toString()); - } - - public void testEnumDeclaration4() throws Exception { - - IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); - StringBuffer buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum E {\n"); - buf.append(" A, B, C;\n"); - buf.append(" private void foo(String str) {\n"); - buf.append(" }\n"); - buf.append("}\n"); - IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null); - - JavaScriptUnit astRoot= createAST3(cu); - ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); - - EnumDeclaration declaration= (EnumDeclaration) findAbstractTypeDeclaration(astRoot, "E"); - { - rewrite.remove((ASTNode) declaration.enumConstants().get(2), null); - rewrite.remove((ASTNode) declaration.bodyDeclarations().get(0), null); - } - - String preview= evaluateRewrite(cu, rewrite); - - buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum E {\n"); - buf.append(" A, B\n"); - buf.append("}\n"); - assertEqualString(preview, buf.toString()); - } - - public void testEnumDeclaration5() throws Exception { - - IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); - StringBuffer buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum E {\n"); - buf.append(" A, B, C;\n"); - buf.append("\n"); - buf.append(" private void foo(String str) {\n"); - buf.append(" }\n"); - buf.append(" private void foo2(String str) {\n"); - buf.append(" }\n"); - buf.append("}\n"); - IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null); - - JavaScriptUnit astRoot= createAST3(cu); - ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); - - EnumDeclaration declaration= (EnumDeclaration) findAbstractTypeDeclaration(astRoot, "E"); - { - - ASTNode newNode= astRoot.getAST().newSimpleName("X"); - - ListRewrite listRewrite= rewrite.getListRewrite(declaration, EnumDeclaration.ENUM_CONSTANTS_PROPERTY); - listRewrite.insertAfter(newNode, (ASTNode) declaration.enumConstants().get(2), null); - - rewrite.remove((ASTNode) declaration.bodyDeclarations().get(0), null); - } - - String preview= evaluateRewrite(cu, rewrite); - - buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum E {\n"); - buf.append(" A, B, C, X;\n"); - buf.append("\n"); - buf.append(" private void foo2(String str) {\n"); - buf.append(" }\n"); - buf.append("}\n"); - assertEqualString(preview, buf.toString()); - } - - public void testEnumDeclaration6() throws Exception { - // test the creation of an enum declaration - - IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); - StringBuffer buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum E {\n"); - buf.append(" A\n"); - buf.append("}\n"); - IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null); - - JavaScriptUnit astRoot= createAST3(cu); - ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); - EnumDeclaration declaration= (EnumDeclaration) findAbstractTypeDeclaration(astRoot, "E"); - - List members= declaration.bodyDeclarations(); - assertTrue("Has declarations", members.isEmpty()); - - rewrite.remove((ASTNode) declaration.enumConstants().get(0), null); - - - String preview= evaluateRewrite(cu, rewrite); - - buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum E {\n"); - buf.append("}\n"); - assertEqualString(preview, buf.toString()); - } - - public void testEnumDeclaration7() throws Exception { - IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); - StringBuffer buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum E {\n"); - buf.append("}\n"); - IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null); - - JavaScriptUnit astRoot= createAST3(cu); - ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); - EnumDeclaration declaration= (EnumDeclaration) findAbstractTypeDeclaration(astRoot, "E"); - - ListRewrite bodyListRewrite= rewrite.getListRewrite(declaration, EnumDeclaration.BODY_DECLARATIONS_PROPERTY); - - AST ast= astRoot.getAST(); - bodyListRewrite.insertFirst(createNewMethod(ast, "foo", false), null); - - String preview= evaluateRewrite(cu, rewrite); - - buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("public enum E {\n"); - buf.append(" ;\n"); - buf.append("\n"); - buf.append(" private void foo(String str) {\n"); - buf.append(" }\n"); - buf.append("}\n"); - assertEqualString(preview, buf.toString()); - } - - - public void testAnnotationTypeDeclaration1() throws Exception { - IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); - StringBuffer buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("/**\n"); - buf.append(" * test\n"); - buf.append(" */\n"); - buf.append("public @interface E {\n"); - buf.append("}\n"); - IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null); - - JavaScriptUnit astRoot= createAST3(cu); - ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); - AST ast= astRoot.getAST(); - - { - AnnotationTypeDeclaration type= (AnnotationTypeDeclaration) findAbstractTypeDeclaration(astRoot, "E"); - - ListRewrite listRewrite= rewrite.getListRewrite(type, AnnotationTypeDeclaration.MODIFIERS2_PROPERTY); - listRewrite.insertFirst(ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD), null); - - SimpleName name= type.getName(); - SimpleName newName= ast.newSimpleName("X"); - - rewrite.replace(name, newName, null); - - AnnotationTypeMemberDeclaration declaration= ast.newAnnotationTypeMemberDeclaration(); - declaration.setName(ast.newSimpleName("value")); - declaration.setType(ast.newSimpleType(ast.newSimpleName("String"))); - - ListRewrite bodyList= rewrite.getListRewrite(type, AnnotationTypeDeclaration.BODY_DECLARATIONS_PROPERTY); - bodyList.insertFirst(declaration, null); - } - - String preview= evaluateRewrite(cu, rewrite); - - buf= new StringBuffer(); - buf.append("package test1;\n"); - buf.append("/**\n"); - buf.append(" * test\n"); - buf.append(" */\n"); - buf.append("final public @interface X {\n"); - buf.append("\n"); - buf.append(" String value();\n"); - buf.append("}\n"); - assertEqualString(preview, buf.toString()); - - } public void testWildcardType() throws Exception { IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);